IE5.01 での *.js の扱い方の変更について

[上に] [前に] [次に]
新谷 1999/12/16(木) 17:00:54
*.jsを使ったサイトがIE5.01でScript Errorになります。
調べてみたところ、IE5.0以前では、*.jsはShift_JISで
書かないとalertの文字などが化けていた(HTMLはEUC-JP)
のですが、5.01からはHTMLと同じ文字セットでないとダメな
ようなのです。
SCRIPT要素は相変わらずCHARSET属性を無視しているように
思えます。
IE5.01を使っている他の方のところでも同じ現象が出ている
でしょうか?

ででん 1999/12/16(木) 19:36:38
がびーーん!!!
マジか?と思って試してみたらその通り!
これは深刻な問題ですね

NNはSJISでもEUCでもOK
IE4、IE5.0はSJISのみ
IE5.01はEUC
・・・

解決策はあるのでしょうか??

EMI 1999/12/16(木) 19:54:41
HTML・JavascriptともにShift-JISで書く。‥‥‥で、いいのかな?
あるいは、jsファイルを二種類用意して、埋め込みJavascriptで
読み込むファイルを振り分けるとか‥‥‥できるのか?
(すいません、Javascriptよく知らないんです)
でも、こういう処理(ブラウザ振り分け)こそ、外部jsファイルに
やらせたい仕事ですよねぇ。

>SCRIPT要素は相変わらずCHARSET属性を無視しているように
>思えます。
この発言を見たとき、ちょっとうれしかったです。
「タグ」という言葉の濫用は、見るたびむかむか腹が立っていたので。

あ、内容自体はIE(というかMicrosoft)だめだめだなぁという感じですが。

ででん 1999/12/16(木) 20:46:04
>HTML・JavascriptともにShift-JISで書く。‥‥‥で、いいのかな?

CGIでOracle使うのでEUCじゃないとダメなんですーー(;;

キ=アディ=ムンディ 1999/12/17(金) 01:49:13
たしかに同様の現象を確認しました。
これはイントラ業務をやってる人には致命的な不具合ですね。
MSのリリースノートを見ましたが、該当事項については
何も書いてないです。
でも、一応はバグ・フィックスなんでしょうね・・・
もっとも、charsetを無視してる時点でバグなんですが・・・

対策としては、EUCのSJISで同じjsファイルを用意し、拡張子を
js以外のものにする。jsはApacheの設定でcgiにし、元のjs
ファイルをシェルスクリプトにして、内部でcatするファイル
を切り分ける・・・なんてのはどうでしょう?

キ=アディ=ムンディ 1999/12/17(金) 01:50:12
間違え

EUCのSJIS → EUCとSJIS

Aurai [E-Mail] 1999/12/17(金) 02:21:00
escapeした文字をスクリプト内に入れて
表示するときにunescapeするとかで回避できませんかね
最近のieはescape/unescapeでunicodeしか扱わない様なので
netscapeとの場合分けが必要でしょうけど

三原克大 [E-Mail] 1999/12/20(月) 23:12:05
一番悲惨な解決手段としては、
ECMA-262 で定められている、
\u + hex literals を用いる!
hex literal は Unicode 2.0 を生で。
これは確かに文字コードの問題なし…
JDK の native2ascii を用いて .js を変換すると
容易に作成できますが、可視性は皆無。

なぞみ [E-Mail] [HomePage] 2000/01/07(金) 22:44:13
 あのーーー。皆様の発言に付いていけないのに恐縮ですが、
JSが反乱して仕方がなかったので、
.jsを初めて使ってエラーがでて困ってしまい、ここにやってきましたが、IEを使用している私は、結局どのように解決したら良いのでしょうか。
使っているJSはコピーしてちょこっと変えているだけなので・・・
NNに変える?

キ=アディ=ムンディ 2000/01/08(土) 23:53:19
>IEを使用している私は、結局どのように解決したら良いのでしょうか。

とりあえず、全部SJISにすれば問題はないはずです。
イントラなどの場合、EUCが横行しているのでこの仕様変更(?)が問題になってるわけです。
一般の人はEUCなんて滅多に使いませんから・・・

うフフ 2000/01/09(日) 02:30:58
>一般の人はEUCなんて滅多に使いませんから・・・
でもSJIS使うよりEUCの方がなにかと楽でっせ。

moci 2000/01/09(日) 02:46:25
イントラだとクライアントもサーバもWindowsだったりするので
SJISしか知らないことの方がありそうですけど…
一般の人はたいがいサーバがUNIXだったりするので、そのような
イントラよりもEUCが使われるケースが多いように思います。

三原克大 [E-Mail] 2000/01/09(日) 16:20:16
JavaScript における Latin-1 の外の文字の扱いは、
現在もなお過渡期です。
もしかしたら、ネイティブで扱えるという考えが
通用しない状況かもしれません。

ここからは、実装を離れて仕様書の話です。
ECMA で議論されている新しいバージョンでは
識別子や正規表現でも Unicode の任意の文字が使える
ようにする方向ですが、
現在のところは文字列とコメントの中のみです。
そして、Java 言語と同じように、
エスケープ表現を用いて ASCII の範囲内で記述する
方法も定義されています。
\u hex hex hex hex
これは JavaScript 1.3 以降と JScript 3 以降に
実装されているので、
getFullYear() が動くブラウザなら解釈できます。

別に文字列をネイティブで書いて問題ないはずですが、
エスケープ表現を用いるなどして ASCII の範囲に収めても
プログラムの機能面では全く見劣りが無くて、
プログラムを書くときにちょっと苦労するだけ。
すると、Latin-1 以外の文字コードをネイティブで
処理できなくてもあんまり痛手にならない…
これを理由に文字コードの処理が甘いことに逃げを打つ、
というか現に逃げられているんだろうという気がします。

やまだ 2000/01/09(日) 22:00:54
冬休みにはじめてインターネットを始めました
はずかしいのですが聞いてしまいます

自分の書いているファイルがEUCであるとかSJISであるとかは
どうやってわかるのですか?
 わたしは今SJISで書いているのだ
 さて、EUCで書こうっと
などと思ったことは一度もありませんし
何で書いたのか判方法もわかんないです

ひょっとしてCGIとか使わないわたしには関係ない話なのでしょうか?

気まぐれ 2000/01/10(月) 00:02:11
ここは読みました?
http://www.tohoho-web.com/wwwkanji.htm
「文字コードのいろいろ」の項目で説明されています。

それと、新規の発言は[新規質問]で、既存の話題とは別にしま
しょう。
このサイトを全部読んで理解できたら、かなりのレベルの知識を
得る事が出来ますので、頑張って下さいネ。

気まぐれ 2000/01/10(月) 00:04:37
すいません、まるきり「新規の話題」ではないですね

やまだ 2000/01/10(月) 00:41:22
気まぐれさんへ
読みましたがわたしの知りたいことは読み取れませんでした。
実は先にそこは目をとおしたのですがそのときもわかりませんでしたので
疑問なことを努めてひらたくかいたつもりなのですが
よろしければわたしの質問に直接的な解説をしていただくことはできないものでしょうか?
ここだけで結構なのでぜひお願いいたします

>自分の書いているファイルがEUCであるとかSJISであるとかは
>どうやってわかるのですか?

YUFU [E-Mail] [HomePage] 2000/01/10(月) 03:10:35
>自分の書いているファイルがEUCであるとかSJISであるとかは
>どうやってわかるのですか?

かなり消極的なやり方。 Windows 環境だと想定。
メモ帳で開いて普通に読めれば Shift-JIS 。
後は何かソフトを使うしかないかと……。 (私の場合は秀丸)
Vector (http://www.vector.co.jp/) を見れば何かあると思います。

三原克大 [E-Mail] 2000/01/12(水) 00:48:09
# ところで、この議論が解決したと判断してよいのは誰なんでしょうか

文字コードを判別する便利なツールを知らないので、複数の文字コードを使い分けられるソフトで読んで人間の目で確かめる、つまり多機能なブラウザに読ませてみるのが手っ取り早いのでは。

スタンドアローンだと問題にならないし他の環境とのデータ交換を考慮していないツールも多いので確かに目に触れることは少なくて盲点だったかも。

とりあえず、この画面の中でけりをつけるために基礎事項を書き込むと、
文字コードを選択できないツールでは、プラットホームのデフォルトが使われています。
デフォルトを知っていれば自分がどの文字コードを使っているか分かります。
Windows/DOS と Macintosh の場合は Shift_JIS です。
Winodws2000 のメモ帳だと日本語環境ではなぜか "ANSI" を選ぶと Shift_JIS になります。
UNIX 系列では多くが EUC を採用していますが、異なる設定で運用することも多いです。
他に、Windows2000 のメモ帳は UTF-8 や UCS-2 {big,little} endian を選べますし、
BeOS のように UTF-8 が標準というプラットホームもあります。
# どうやら、世界単一バイナリを目指すプラットホームでは UTF-8 が多い
文字コードを選択できるツールではツールの説明に従ってください。

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