JavaScript の日本語処理について?
[上に]
[前に]
[次に]
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バイト)処理を行っています。
miyasiro
1998/02/03(火) 16:02:34
Res ありがとうございます。
>・HTMLのHEAD部のMETAにcharset=x-sjisを設定し(とほほのWebテクニック)、
>強制的にシフトJISコードにします。
charset=x-sjis を設定することで、クライアント側のブラウザの実行環境にかかわらず
(例えば UNIX 上でも) Java Script の String オブジェクトの日本語文字コードを
強制的に Shift-JIS に設定できるのでしょうか?
そうであれば、おおだすかりなんですが…
試しにうちの Windows95 の環境で、
<HTML><HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=x-euc-jp">
</HEAD><BODY>
<SCRIPT LANGUAGE="JavaScript">
document.write('漢 ('+escape('漢')+')');
</SCRIPT>
</BODY></HTML>
のような HTML ファイルを EUC で作成し('漢'の文字コードは実際は'B4C1')、
ローカルでブラウザ(NN4)に読み込ませた結果は、「漢 (%8A%BF) 」と表示されました。
つまり、うちの環境では、EUC で書いた文字列も Java Script の String オブジェクトの
内部では Shift-JIS に変換されているようなんです。
ということは、charset=x-sjis を設定し Shift-JIS で Java Script を書いても、
UNIX 上のブラウザでは、EUC で実行されることになると思うのですが…
[上に]
[前に]
[次に]