4

Javascriptファイルを含むHTMLがあります。このスクリプトには、特殊文字ASCII 152が含まれています。charCodeAtを表示しようとすると、異なる結果が得られますが、正しい結果は得られません。アドバイスをいただけますか?ありがとう

TEST.HTML

<script type="text/javascript" charset=SEE BELOW src="test.js">
</script>

ANSIエンコーディングを使用したTEST.JSファイル

function d(a)
{
a=(a+"").split("");
alert(a[1].charCodeAt(0));
};
d("i˜g"); // Note that ˜ is 152 in ASCII
  • x-user-defined文字セットを使用したTEST.HTML:アラートは63384を示します。%63232では、128を超えるすべての文字が63232+charとして表示されるため機能します。
  • utf-8文字セットを使用したTEST.HTML:アラートは65533を示します。128を超えるすべての文字は65533として表示されます。
  • TEST.HTML with Windows-1252文字セット:アラートは752を示しています。ASCIIと表示内容の関係が見つかりません。

UTF-8エンコーディングを使用したTEST.JSファイル

function d(a)
{
a=(a+"").split("");
alert(a[1].charCodeAt(0));
};
d("i[x98]g"); // Note that x98 is 152
  • x-user-defined文字セットを使用したTEST.HTML:アラートは65533を示します。128を超えるすべての文字は65533として表示されます。
  • utf-8文字セットを使用したTEST.HTML:アラートは65533を示します。128を超えるすべての文字は65533として表示されます。
  • TEST.HTML with Windows-1252文字セット:アラートは65533を示します。128を超えるすべての文字は65533として表示されます。
4

2 に答える 2

6

utf8の範囲は128〜255の文字ではなく、ASCIIは完全に127で終了します...また、の位置の文字1"i[x98]g""["であり、"[x98]"意味がありません。

関数は。に置き換えることができますstr.charCodeAt(1)

文字˜Unicode文字'SMALLTILDE'(U + 02DCであり、、、"\u02DC"またはString.fromCharCode(732)

于 2012-04-09T08:45:20.210 に答える
0

ASCIIは127文字しかありません。char152は存在しません

于 2012-04-09T08:41:52.147 に答える