2010-03-06 42 views
2

我有以下問題:動態加載JavaScript文件和非ASCII字符

<script type="text/javascript"> 
alert("1. ČĆŽŠĐčćžšđ"); 
</script> 

<script type="text/javascript" src="Tst.js"></script> 

<script type="text/javascript"> 
var pScript = document.createElement("script"); 
pScript.type = "text/javascript"; 
pScript.src = "Tst.js"; 
pScript.charset = "windows-1250"; 
$("body").append(pScript); 
</script> 

(這些是克羅地亞字符)Tst.js的

內容是:

alert("2. ČĆŽŠĐčćžšđ"); 

FireFox中的這個腳本的輸出(和Safari,所以我已經斷定這不是瀏覽器的問題,而是我的代碼):

1. ČĆŽŠĐčćžšđ 
2. ČĆŽŠĐčćžšđ 
2. �Ǝ���枚� 

調用此代碼的主頁上的字符集是Windows-1250。

我不明白,爲什麼當我打電話Tst.js靜態(由<script src="Tst.js" type="text/javascript"></scipt>)的字符顯示正常,但是當我包括動態Tst.js人物去bannanas ...

不幸的是,我可以將我的所有代碼移植到UTF-8。

有什麼建議嗎?

+0

查看我的更新回答。 – 2010-03-06 10:10:28

回答

2

第二次更新:指定JavaScript文件的內容類型標題中的編碼的確有竅門 - 無論出於何種原因!

更新:您在加載腳本後設置字符集。 嘗試

<script type="text/javascript"> 
var pScript = document.createElement("script"); 
pScript.type = "text/javascript"; 
pScript.charset = "windows-1250"; 
pScript.src = "Tst.js"; 
$("body").append(pScript); 
</script> 
+0

是的,這兩個文件都在windows-1250中。這就是爲什麼它很奇怪。 – Stazh 2010-03-06 10:02:31

+0

現在我已經改變了字符集和src屬性的順序,所以字符集在src之前,但問題仍然存在。 – Stazh 2010-03-06 10:12:42

+0

@Stazh真的很奇怪。如果在示例2中添加了charset =「windows-1250」'會發生什麼情況(使用腳本標籤包含腳本)? – 2010-03-06 10:17:17