我在执行测试时已经注意到stange的东西。
“stange things”涉及字符编码。JavaScript字符编码+ Internet Explorer 9编码
对于每个测试,我都在我的Internet Explorer 9 Web浏览器中加载了一个HTML页面。
我的HTML页面以UTF-8编码。
这是我的HTML页面的代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
var strChaine = "été";
alert(strChaine.charCodeAt(0) +
" " + strChaine.charCodeAt(1) +
" " + strChaine.charCodeAt(2) +
" " + strChaine.charCodeAt(3) +
" " + strChaine.charCodeAt(4));
</script>
</head>
<body>
</body>
</html>
HTML页面包含的JavaScript代码来显示一个警告框。
在每次测试之前,我已在IE9中通过右键单击然后在编码菜单中选择一个选项来设置特定编码。
测试1
对于此测试,IE9编码已被设置为UTF-8。
警报框显示:233 116 233 NaN NaN
对我来说这似乎很奇怪。
由于我的HTML页面是用UTF-8编码的,IE9使用UTF-8对我的HTML页面进行解码,所以我期望警告框显示:195 169 116 196 116
0d195 0d169 0d116 0d196 0d116是UTF-8十进制表示的字符串“été”。
0xC3 0xA9 0x74 0xC3 0xA9是UTF-8十六进制等效表示。
有没有人可以证明真正显示在警告框中的内容?
测试2
对于这个测试IE9编码已被设置为西方字母(ISO)。
警报框显示:195 169 116 195 169
这又一次对我来说似乎很奇怪。
我得到了我期望的测试1的结果。
有没有人可以证明显示在警告框中的内容?