JavaScript中的国际字符

时间:2020-03-05 18:52:49  来源:igfitidea点击:

我正在使用Web应用程序,在该应用程序中,我将数据从服务器传输到XML的浏览器中。

由于丹麦语,我很快遇到了字符" ???"的问题。

我知道在html中,我对???使用"æøå"

但是,一旦字符通过JavaScript,当使用???时,我会得到一个黑盒,上面有"?",并且按原样打印"""

我已经确保将其设置为utf-8,但这并没有太大帮助。

理想情况下,我希望它可以与任何特殊字符配合使用(自然)。

下面列出了无效的示例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
        <script type="text/javascript" charset="utf-8">
            alert("&aelig;&oslash;&aring;");
            alert("???");

        </script>
    </head>
    <body>
    </body>
</html>

我究竟做错了什么?

好的,多亏了Grapefrukts的回答,我才能正常工作。

实际上,我需要它来存储来自MySQL服务器的数据。由于以UTF-8编码保存文件只能解决静态内容的问题,因此我认为我将包括使用PHP从MySQL服务器提取字符串的解决方案:

utf8_encode($ MyStringHere)

解决方案

回答

这对我来说是预期的:

alert("&aelig;&oslash;&aring;");

...创建一个包含字符串""的警报,而

alert("???");

...使用非ASCII字符创建警报。

Javascript非常utf-8干净,不会阻碍前进。

也许我们将其放在作为ISO-8859-1的Web服务器上?如果我们使用Apache,请在Apache配置文件中(或者在.httaccess中,如果可以覆盖),则应在一行

AddCharset utf-8 .js

(注意:已编辑,以逃离&符...否则,这没有任何意义。)

回答

我第一个得到"",第二个得到一些垃圾字符。可能是javascript没有处理(或者mojibake)字母,但是警报对话框使用系统默认字体,并且该字体无法显示字母吗?

回答

仅在标头中指定UTF-8是不够的。我敢打赌,我们还没有将文件另存为UTF-8. 任何相当高级的文本编辑器都将具有此选项。试试看,我相信它会起作用!

回答

我们也可以使用String.fromCharCode()从数字实体输出字符。

例如String.fromCharCode(8226)将创建一个项目符号字符。

回答

如果我们无法设置响应编码,则可以在JavaScript字符串文字中使用\ u转义序列来显示这些字符。

alert("\u00e6\u00f8\u00e5")