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抱歉不便。)

對不起,我弱英語。