- - PR -
Tomcat4.1.29のHTMLファイル文字化け問題について
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-11-14 10:17
はじめまして、しれんと申します。
いつも多いに参考にさせて頂いております。 Win32版Tomcat4.1.29についての問題なのですが StaticなHTMLファイルを表示させた場合、<meta>タグにてcharsetを指定していても 無視され、ISO8859-1エンコードと解釈されて表示される為 ブラウザ側で自動認識出来ず、文字化けする問題が出ており、悩んでいます。 ServletからForwardしたJSPを、 表示する場合に指定した<@page encoding...>ディレクティブは正常に動作 しており、文字化けすることはありません。 純粋にURL指定したHTMLファイルのみ<meta>タグが無視され、ISO8859-1として 認識されて文字化けしております・・・ ちなみに複数の環境でチェックしましたが、同様に自動認識されない状態です。 Tomcat側で、HTMLヘッダーに固定でISO8859-1のcharset指定を付与している かと推測し、server.xml等の記述情報を調べたのですが 中々解決の糸口がつかめず、ご助力を頂きたく思いました。 宜しくお願いいたします。 | ||||
|
投稿日時: 2003-11-14 10:57
補足です。
Apache2.0.48(Win32版)をinstallし、標準のHTMLを表示させてみた所 やはりISO8859-1として自動認識されました。 charset指定の<META>タグは以下のものです。 <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> (他、Shift_JIS,EUC-JPも試しました。) Apache、Tomcat共に同じ現象が起こる事でServerのConfing設定が原因では 無い様な気もしてきましたが・・・ 当方の環境です: OS : WindowsXP-Professional Browser : IE6(encoding自動認識設定) Server : Tomcat4.1.29 宜しくお願いいたします。 | ||||
|
投稿日時: 2003-11-14 11:43
こんな感じでデフォルトエンコーディングを指定してみてください。
<Context 〜> <DecodeInterceptor defaultEncoding="Shift_JIS" /> hogehoge... </Context> Apache 2.0も似たような話です。 HTTP1.1ではレスポンスヘッダでのエンコード指定が正しいという話を きいたような気がしますが、ネタ元を覚えていないので・・・ | ||||
|
投稿日時: 2003-11-14 12:40
tabbyさん有難う御座います。
conf/web.xmlの <mime-type>テキストノードに "text/html;charset=UTF-8" とすることで、デフォルトキャラセットとしてUTF-8を設定することが 出来ました。(以下記述) <mime-mapping> <extension>body</extension> <mime-type>text/html;charset=UTF-8</mime-type> </mime-mapping> IEでは<meta〜charset=...>は無視されるんでしょうか・・・。 <DecodeInterceptor defaultEncoding="Shift_JIS" />の方も試してみようと 思います。 有難う御座いました。
| ||||
|
投稿日時: 2003-11-14 13:07
補足ですが
Apacheの場合は、$APACHE_HOME/conf/httpd.conf(700何行目か)で "AddDefaultCharset"という項目でISO8859-1を指定しています。 これが指定されている場合、HTMLファイルの<META>タグは無視されてしまうとどこかで見ました。 Apacheの場合では上記項目にISO8859-1の代わりにOffとするか、行ごとコメントするとHTMLファイルの <META>タグを認識してくれます。 | ||||
|
投稿日時: 2003-11-14 13:41
しれんさん、
http://www.jajakarta.org/kvasir/bbs/technical/251 をご覧になって下さい。 | ||||
|
投稿日時: 2003-11-14 14:13
to ちばさん
ご助言有難う御座います。 AddDefaultCharsetの件を確認致しました。 コメントアウトした所、<meta〜charset=...>が機能することを 確認しました。 今までの開発経験の中で、環境を一から作る事があまり無かったもので 基本的な知識が抜け落ちていることを改めて実感しました・・・ to FlossenEngelさん まさしく同じような問題のスレッドですね! まだまだGoogleの使い方が甘いようです・・・。 参考になりました。有難う御座います。 <mimetype>テキストノードの指定で一応臨時措置を取ったのですが・・・ HttpHeaderのcharsetにISO8859-1が含まれる「バグ(?)」のFIXとCommitが これから行われるということでしょうか。 バージョンダウンで対応したい所ですが、やはりOldVersionのArchiveを取っておくのは 大事ですね。教訓になりました。 | ||||
|
投稿日時: 2003-11-14 14:19
ども、ほむらです。
------------------ <meta>タグはHTTPヘッダの補足という位置付けのようですね。 HTTPヘッダですでに宣言されていれば無視する仕様のようです。 Web標準普及プロジェクト−Web標準化Tipsより http://www.mozilla.gr.jp/standards/webtips0022.html 下のほうにちらと書いてあります #HTMLの仕様ではなくてmozillaの仕様ですね^^;;; #でもIE6のベースはMozilla/4.0。。関係しているかもしれません。 [ メッセージ編集済み 編集者: ほむら 編集日時 2003-11-14 14:39 ] | ||||
