14

我正在开发一个 Web 应用程序,我在其中以 XML 格式将数据从服务器传输到浏览器。

由于我是丹麦人,我很快就遇到了人物问题æøå

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

但是,一旦字符通过 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 编码保存文件只能解决静态内容的问题,我想我会包含 MySQL 服务器中字符串的解决方案,使用 PHP 提取:

utf8_encode($MyStringHere)

4

6 回答 6

24

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

alert("\u00e6\u00f8\u00e5")
于 2008-09-28T00:38:30.543 回答
12

仅在标头中指定 UTF-8 是不够的。我敢打赌,您还没有将文件保存为 UTF-8。任何相当先进的文本编辑器都会有这个选项。试试看,我相信它会起作用的!

于 2008-09-13T20:39:25.840 回答
7

您还可以使用String.fromCharCode()从数字实体中输出字符。

例如String.fromCharCode( 8226 )将创建一个子弹字符。

于 2008-09-15T21:43:22.470 回答
1

我得到“æøå” 第一个和一些垃圾字符的下一个。可能是 javascript 没有修改(或mojibake)您的字母,但警报对话框使用系统默认字体,并且该字体无法显示字母?

于 2008-09-13T20:35:54.710 回答
1

我将这样的代码与泰语一起使用。没关系。

$message是我的 PHP 变量。

echo("<html><head><meta charset='utf-8'></head><body><script type='text/javascript'>alert('" . $message . "');</script></body></html>");

希望这能有所帮助。谢谢你。

(我无法发布我所做的图像,因为系统说“我没有足够的声誉”,所以我把图像留在这里。http: //goo.gl/9P3DtI抱歉给您带来不便。)

对不起我的英语不好。

于 2013-07-25T23:31:08.730 回答
0

这对我来说按预期工作:

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

... 创建一个包含字符串“æøå”的警报 然而

alert("æøå");

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

Javascript 非常干净 utf-8,不会给您设置障碍。

也许你把它放在一个作为 ISO-8859-1 服务的网络服务器上?如果你使用 Apache,在你的 Apache 配置文件中(或者在 .httaccess 中,如果你可以覆盖的话),你应该有一行

AddCharset utf-8 .js

(注意:编辑以逃避&符号......否则它没有意义。)

于 2008-09-13T20:25:35.297 回答