miyasiro
[E-Mail]
1997/12/26(金) 22:43:41
漢字(日本語)文字列に対して charAt() や substring(n,n+1) が返す
文字について教えて下さい。
JavaScript で、s = "漢字" の場合、s.charAt(0) は、うちの
Windows95, MSIE 3.02 では、"漢" が返り、
Windows95, NN 4.01 では、S-JIS の第1バイトの 8Ah が返るようです。
iskanji="□□□□□□□□□□□□□□□□"
(81h~9Fh, E0h~FCh)
とすると、iskanji.indexOf( s.charAt(0) ) が 9 となることから確認しました。
そこで、疑問なのですが、
1.Windows95 や Mac では、バージョンにかかわらず、MSIE は漢字1文字、
NN は S-JIS の第1バイトを返すと考えてよいのでしょうか?
2.また、他の文字コード(EUC とか)で動作する環境では、s.charAt(0) は、
どのような値を返すのでしょうか?
3.さらに、サーバの HTML ファイルで用いられる文字コードが影響する場合が
あるのでしょうか?
miyasiro
[E-Mail]
1997/12/30(火) 02:41:06
Open Space(
http://www.shiojiri.or.jp/~openspc/) の JavaScript Library の
「文字」に「日本語文字処理」のライブラリがあるのを見逃していました。
文字コードも escape を使えば簡単に取得できますね。上の iskanji は大ボケ
でした(苦笑)。
それから、このライブラリの解説の雰囲気から、Shift-JIS の環境では、事情は
ほぼ同じようです。
ただ、ここのライブラリも完全に Shift-JIS に依存するので、2.の疑問は
解消しませんでした。Shift-JIS 以外のコードで Java Script が実行される環境では
どうなるのか、よろしくお願いします。
takagi7
[E-Mail]
[HomePage]
1998/02/03(火) 10:29:15
小生は、以下の方法でIE、ネスケの日本語処理に対応しています。
・HTMLのHEAD部のMETAにcharset=x-sjisを設定し(とほほのWebテクニック)、強制的にシフトJISコードにします。
・後は、miyasiroさんと同じように、ブラウザのタイプを認識して、ブラウザのタイプに応じた文字取り込み(IEは漢字1文字、 ネスケは1バイト)処理を行っています。