【发布时间】:2012-04-21 16:22:51
【问题描述】:
我有一个包含 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 charset 的 TEST.HTML:警报显示 63384。使用 %63232 有效,因为每个 char >128 都显示为 63232+char。
- 带有 utf-8 字符集的 TEST.HTML:警报显示 65533。所有 > 128 的字符都显示为 65533。
- 带有 Windows-1252 字符集的 TEST.HTML:警报显示 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 用户定义的字符集的 TEST.HTML:警报显示 65533。所有 > 128 的字符都显示为 65533。
- 带有 utf-8 字符集的 TEST.HTML:警报显示 65533。所有 > 128 的字符都显示为 65533。
- 带有 Windows-1252 字符集的 TEST.HTML:警报显示 65533。所有大于 128 的字符都显示为 65533。
【问题讨论】:
-
utf8 的 127-255 范围内没有字符,ASCII 以 127 结尾...而且
"i[x98]g"中位置1的字符是"[" -
"~" 在我知道的任何编码中都不在位置 152。
-
请参阅 www.ascii-code.com(ASCII 扩展)
标签: javascript utf-8 character-encoding ansi windows-1252