• 締切済み

テキストを表示すると文字化けする

まず、HTMLから !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-31j"> <title>メール送信フォーム</title> </head> <body> <h2>メール送信フォーム</h2> <form action="conf.jsp" method="POST"> <table summary="" border="0"> <tr> <td>お名前</td> <td><input type="text" name="name" size="20"></td> </tr> <tr> <td>メールアドレス</td> <td><input type="text" name="from" size="20"></td> </tr> <tr> <td>メールタイトル</td> <td><input type="text" name="title" size="20"></td> </tr> <tr> <td>メッセージ</td> <td><textarea rows="5" name="message" cols="40"></textarea></td> </tr> <tr> <td colspan="2"><input type="submit" value="内容の確認"></td> </tr> </table> </form> </body> </html> それを受けるconf.jspで文字化けします。 が、1つ文字化けせずに表示する方法があります。 <%@ page language="java" contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>メール送信フォーム</title> </head> <body> <h2>メール送信内容確認画面</h2> <% request.setCharacterEncoding("Shift-JIS"); ↑ここですね↑見にくくてすいません。 ここでShift_JISに変換されてちゃんと表示されます。 でも、これは後から付け加えたものでソースコードには最初ありませんでした。 //フォームの値を取得 String mName = request.getParameter("name"); String mFrom = request.getParameter("from"); String mTitle = request.getParameter("title"); String mNaiyou = request.getParameter("message"); //値をチェック boolean errFlg = false; if (mName.equals(" ")) { out.println("<p>お名前を入力して下さい。"); errFlg = true; } if (mFrom.equals(" ")) { out.println("<p>メールアドレスを入力して下さい。"); errFlg = true; } if (mTitle.equals(" ")) { out.println("<p>タイトルを入力して下さい。"); errFlg = true; } if (mNaiyou.equals(" ")) { out.println("<p>内容を入力して下さい。"); errFlg = true; } if (errFlg == false) { %> <h2>内容を確認して送信ボタンをクリックして下さい</h2> <form action="sendMail.jsp" method="POST"> <table border="0"> <tr> <td width="100">お名前</td> <td width="300"><%= mName %></td> </tr> <tr> <td width="100">メールアドレス</td> <td width="300"><%= mFrom %></td> </tr> <tr> <td width="100">メールタイトル</td> <td width="300"><%= mTitle %></td> </tr> <tr> <td width="100">メッセージ</td> <td width="300"><%= mNaiyou %></td> </tr> <tr> <td colspan="2"><input type="submit" value="送信"></td> </tr> </table> <input type="hidden" name="name" value="<%= mName %>"> <input type="hidden" name="from" value="<%= mFrom %>"> <input type="hidden" name="title" value="<%= mTitle %>"> <input type="hidden" name="message" value="<%= mNaiyou %>"> </form> <% }%> </body> </html> 何故、文字化け状態になるのでしょう。 アドバイス宜しくお願い致します。

みんなの回答

  • pink_cn
  • ベストアンサー率25% (1/4)
回答No.1

HTMLの <meta http-equiv="Content-Type" content="text/html; charset=windows-31j">中のcharsetもShift-JISに変更してみたら? もしくはどちらでもcharsetをUTF-8に指定するのでは。 ご参考になれれば。

関連するQ&A

専門家に質問してみよう