Javascript中的国际字符

时间:2008-09-13 20:19:39

标签: javascript unicode internationalization character-encoding

我正在开发一个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编码保存文件只能解决静态内容的问题,我想我会包含MySQL服务器的字符串解决方案,使用PHP取出:

utf8_encode($MyStringHere)

6 个答案:

答案 0 :(得分:21)

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

alert("\u00e6\u00f8\u00e5")

答案 1 :(得分:10)

仅在标题中指定UTF-8是不够的。我敢打赌你没有把你的文件保存为UTF-8。任何合理高级的文本编辑器都有此选项。尝试一下,我相信它会起作用!

答案 2 :(得分:7)

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

e.g。 String.fromCharCode( 8226 )将创建一个子弹角色。

答案 3 :(得分:1)

我得到了“&amp; aelig;&amp; oslash;&amp; aring;”对于第一个和一些垃圾字符为下一个。是不是javascript不是你的字母(或mojibake)你的字母,但警告对话框使用系统默认字体,字体不能显示字母?

答案 4 :(得分: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很抱歉给您带来不便。)

抱歉我的英语不好。

答案 5 :(得分:0)

这对我有用:

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

...创建一个包含字符串“&amp; aelig;&amp; oslash;&amp; aring;”的警报而

alert("æøå");

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

Javascript非常简洁,并且不会给您带来障碍。

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

AddCharset utf-8 .js

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