IEではメッセージが文字化けしてしまう

[上に] [前に] [次に]
Duck 2000/06/02(金) 09:59:03
サーバをUNIX(Soralis2.6)で開発しているのですが、
ソースの文字コードがEUCなので、HTMLヘッダーに
<meta http-equiv="Content-Type" content="text/html;charset=euc-jp">
としていますが、JavaScriptで確認メッセージ等を表示した場合
IEでは文字化けしてしまいます。
NCでは何とも無かったのになぜIEでは?

ちなみに文字コードはEUC-JPになっているのにだめでした。
文字化けさせない良い方法を教えてください。

ねね 2000/06/02(金) 10:11:04
JavaScriptを外部ファイル(*.js)にしてませんか?
その場合、HTMLと*.jsの両方をShift_JISで書かないと
大抵の場合、化けます。

実はこんな単純な問題ではないんですけど、これが一番
簡単な回避策。

Duck 2000/06/02(金) 10:29:00
そのとおりです。

事実、外部ファイルにしていない部分は文字化けしませんでした。
しかし、HTMLはEUCというのはどうしても譲れません。
#他のページにも関わるので・・・

となったらすべてHTMLに埋め込むしかないんですかね。

>実はこんな単純な問題ではないんですけど、これが一番
>簡単な回避策。
それなら仕方ありませんが、そんな問題か気になります。。。

ねね 2000/06/02(金) 12:05:52
過去ログでもこの問題はたくさん報告されてます。
でも、決定的かつ万能な回避策がないのが現状です。
IE限定にしても、バージョンによって挙動が異なるのです(5.0と5.01でも違う)。

回避策をもうひとつ・・・

Shift_JIS版とEUC-JP版の、内容の同じ2つのhoge.jsを用意します。
内部で HTTP_USER_AGENT を取得し、Shift_JIS版・EUC-JP版、どちらを取り込めばいいかを
判断し、それを Content-Type: text/javascript で標準出力に吐き出すCGIを作成します。
そのcgiを <script type="text/javascript" href="hoge.cgi"> でHTMLに取り込みます。

どのUAがどちらのエンコードを要求するかはご自分で試行錯誤してください。

Duck 2000/06/02(金) 12:16:31
[[解決]]
大変参考になるご意見、ありがとうございました。

やっぱりUAに依存なくするために外部ファイルにするのは止めました。

でも、それってIEのバグっぽく思えますね。
#頻繁にバージョンアップするくせに。。。
#何とかしてほしいものです。

[上に] [前に] [次に]