プロが教える店舗&オフィスのセキュリティ対策術

apache + tomcat + jsp であるサイトを作っています。

文字コード「Shift_JIS」のHTMLページを返しているのですが、
ブラウザの設定がデフォルト「Unicode」になっている場合、
文字化けします。(「Shift_JIS」に設定し直すとみれます。)

あるサイトを見ると、同じく「Shift_JIS」のHTMLページがあるのですが、
ブラウザが勝手に文字コード「Shift_JIS」と判断して表示しています。

上記のような動きをブラウザにとらせるには、どのような事をするべきなのでしょうか?

(ちなみに、携帯用サイトでPCからの閲覧可です)

A 回答 (2件)

Tomcatルートディレクトリのconfフォルダの中のweb.xmlの設定


<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>javaEncoding</param-name>
<param-value>Shift_JIS</param-value>
</init-param>
にしてみたらどうでしょうか?
JSPをプリコンパイルする際に、デフォルトだとUTF-8になって文字化けしたりします。
プラス、PED02744が回答されているように、~;charset=Shift_JISや、metaタグの記述も必須ですね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

Tomcatのweb.xmlに上記設定を追加してみましたが、
結果は変わらずでした。

jspのcharset、tomcatのweb.xml以外に、原因は考えられますでしょうか?

また、うまく動作しているサーバ環境と、動作しないサーバ環境の違いは、
apacheだけです。apacheに何か設定追加する項でもあるのでしょうか?

お礼日時:2007/07/06 09:31

JSPで作っているページだとして、


~.jsp の先頭に
<%@ page contentType="text/html; charset=Shift_JIS" %>
があって、
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
これが書かれていても化けるということでしょうか?

この回答への補足

はい。charaset=Shift_JISは指定しています。

実は上記の、
 1)ブラウザが「Shift_JIS」と認識しないHTML
 2)ブラウザが「Shift_JIS」と認識するHTML
は、同じjspが発行しています。

あるサーバで動いていた、「apache + tomcat + jsp」サイトを、
別サーバに移行(中身はコピー)してきたときに、この現象が発生しました。

そのため、apacheあたりに何か設定が必要なのか、とも思っていたのですが・・どうなんでしょうか?

補足日時:2007/07/05 13:26
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!