我正在开发一个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("æøå");
alert("æøå");
</script>
</head>
<body>
</body>
</html>
我做错了什么?
好的,感谢Grapefrukts的回答,我明白了。
我实际上需要它来自MySQL服务器的数据。由于以UTF-8编码保存文件只能解决静态内容的问题,我想我会包含MySQL服务器的字符串解决方案,使用PHP取出:
utf8_encode($MyStringHere)
答案 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("æøå");
...创建一个包含字符串“&amp; aelig;&amp; oslash;&amp; aring;”的警报而
alert("æøå");
...使用非ascii字符创建警报。
Javascript非常简洁,并且不会给您带来障碍。
也许你把它放在一台服务于ISO-8859-1的网络服务器上?如果你在Apache配置文件中使用Apache(或者在.httaccess中,如果你可以覆盖),你应该有一行
AddCharset utf-8 .js
(注意:编辑以逃避&符号......否则没有意义。)