2008-09-13 119 views
10

我正在开发一个Web应用程序,在这里我使用XML将数据从服务器传输到浏览器。Javascript中的国际字符

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

我知道在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)

回答

10

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

0

该作品如预期对我来说:

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

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

alert("æøå"); 

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

Javascript很漂亮的UTF-8清洁,并不倾向于在你的方式放置障碍。

也许你正在把它放在一个作为ISO-8859-1的Web服务器上?如果你使用Apache,在Apache的配置文件(或.httaccess,如果你可以重写),你应该有一个线

AddCharset utf-8 .js 

(注:编辑逃脱&符号......否则就没有)

1

我得到“& aelig; & oslash; & aring;”为第一个和一些垃圾字符为下。这可能是因为JavaScript没有改变(或mojibake)你的字母,但警告对话框使用系统默认字体,并且字体不能显示字母?

6

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

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

20

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

alert("\u00e6\u00f8\u00e5") 
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抱歉不便。)

对不起,我弱英语。