用ASCII字符> 128没有在Javascript中正确地读出(Characters wit

2019-07-28 21:16发布

我有一个HTML包含JavaScript文件。 此脚本包含特殊字符,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
  • 的test.html具有x-用户定义的字符集:警报显示63384.随着%63232部作品,因为每个字符> 128被显示为63232 +炭。
  • 的test.html使用UTF-8字符集:警报显示65533.所有字符> 128被显示为65533。
  • test.html文件与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
  • 的test.html具有x-用户定义的字符集:警报显示65533.所有字符> 128被显示为65533。
  • 的test.html使用UTF-8字符集:警报显示65533.所有字符> 128被显示为65533。
  • test.html文件与Windows-1252字符集:警报显示65533.所有字符> 128显示为65533。

Answer 1:

有一个在范围128-255没有字符UTF8和ASCII在127完全结束...此外字符在位置1"i[x98]g""["时, "[x98]"是无意义的。

你的函数可以被替换str.charCodeAt(1)

字符˜是Unicode字符'小TILDE'(U + 02DC和可以写为"\u02DC"String.fromCharCode(732)



Answer 2:

ASCII只有127个字符。 焦炭152是不存在的



文章来源: Characters with ASCII > 128 are not correctly read in Javascript