如何在javascript文件中存储包含字母如öő字符串的数组?

我在一个包含匈牙利名字的javascript文件中有一个数组,其特殊字母如:öőóáí.

var names = ["Aba", "Abád", "Abbás", "Abdiás", "Abdon", "Ábel", "Abelárd"];

(以上只是一个缩短的数组,整个长度约为3000项)

当我想在HTML文档中输出“names”的内容时,我得到了非ASCII字符的低沉字母.

如果我在输出它的UTF-8编码HTML中直接定义数组,我得到一个清晰的输出列表.就好像我在JavaScript文件中定义数组一样,我得到了一个低沉的内容.
见屏幕:http://screencast.com/t/YJ83K9Mgm

我检测到(记事本)JavaScript文件是ANSI编码.

问题:如何存储名称数组(或一般包含此特殊字母的代码),以便我可以在浏览器中正确输出它.

(实际上我正在使用MS Studio Express 2012进行编码.我找不到可以设置某些文件的编码类型的地方.)

这里是HTML HEADER中定义的阵列的简化代码:

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>Name List Trial</title>
    <script src="nevekdata.js"></script>
    <script>
        // These are Hungarian first names just a few of them, the whole array is around 1400 long
        // including letters like ö ő ó á stb.
        // !!!!!!!!
        // if I difine  the "names" Array here, the array list is written out in the browser width the
        // special letter seen correctly.        
        var names = ["Aba", "Abád", "Abbás", "Abdiás", "Abdon", "Abdullah", "Ábel", "Abelárd"];
        // if I put it into a javascript file "nevekdata.js" I get muffled chars instead of the correct letters
        function writeOutNames() {
            outputnames.innerHTML = names.toString();
        }
    </script>
</head>
<body>
    <button onclick="writeOutNames()">Write Out names</button>
    <p></p>
    <p id="outputnames"></p>

</body>
</html>

解决方法:

您已经自己说过,文件以ANSI格式保存,但之后您将其作为UTF-8提供.这会导致浏览器将您的ANSI编码文件视为UTF-8.

charset参数和标题只是浏览器提示文件所在的编码,它实际上并没有对文件的“物理”字节做任何事情.要使这一切正常工作,您需要charset参数和头文件并将文件物理编码为UTF-8字节.

您需要在记事本中将文件编码为UTF-8 ..,将文件保存为UTF-8而不使用BOM.

上一篇:是否有与Python相同的Term :: ANSIScreen?


下一篇:JavaScript blob编码为UTF-8而不是ANSI