日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

同一页面引入多个JS文件的编码问题

發(fā)布時間:2023/11/29 javascript 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 同一页面引入多个JS文件的编码问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
原來只是覺得IE解析HTML文件的時候,需要知道其傳輸編碼,才能正確處理,而從來沒有在意過JavaScript文件的編碼問題。結(jié)果今天發(fā)現(xiàn)同一頁面中的多個JavaScript文件如果保存編碼不同,也會有出錯的問題。這個一般怎么會遇到呢?

????原來寫的js文件,從來沒有關(guān)心過他們的編碼問題。可是后來不知怎么的,發(fā)現(xiàn)一些單獨(dú)都好使得文件,被同時引用到一個頁面中時,就錯誤不斷,根本不能執(zhí)行。Debug半天,原來是文件編碼問題搞得鬼。

??? 一般我們在中文OS中保存文本文件,默認(rèn)都是一GB2312編碼保存的,比如VS.NET 2003,2005都是這樣。可是當(dāng)我們在腳本代碼中寫有"?"這些符號后,保存文件會提示讓你保存為Unicode格式。如果你不加理會,仍然保存為GB2312,那么下次打開這個文件你會發(fā)現(xiàn)"?"變成"?"@_@。這樣的字符還有一些,比如在Windows中的高位ASCII字符,它們的Unicode定義就是一些比較怪異的字符,如果用GB2312強(qiáng)行存這些字符,打開后會被兩兩合并為漢字或成為亂碼。

??? 回到我們腳本文件編碼的問題上來,如果我們在同一個頁面中引用多個JavaScript文件,而這些文件的保存編碼又不同(有GB2312有又Unicode),就可能出錯。當(dāng)然不是總都出,這也是最要命的。由于對于7bit ASCII碼,不管什么編碼都是通用的,也不會有解碼問題,可是如果文件里包含了漢字,就有可能出錯了。

????比如,GB2312保存的js文件: var?str?=?'這是一個GB2312編碼文件。';
var?description?=?'this?file?saved?as?GB2312?encoding.';????可以在選擇編碼為GB2312的IE中正確的被引用。

??? Unicode編碼保存的js文件: var?strW?=?'這是一個Unicode編碼文件。';
var?descriptionW?=?'this?file?saved?as?Unicode?encoding.';????可以在選擇編碼為Unicode的IE中正確的被引用。

??? 而這兩個文件在下列引用中,不管怎么選擇IE編碼也是不能正確執(zhí)行結(jié)果:( <html>
<head>
????
<title>Test?Encode</title>
????
<script?src="Unicode.js"?language="javascript"></script>
????
<script?src="GB2312.js"??language="javascript"></script>
</head>
<body>
<script?language="javascript">
????alert(strW?
+?'\r\n'?+?descriptionW);
????alert(str?
+?'\r\n'?+?description);
</script>
</body>
</html>
????不過如果js中只有低位ASCII字符,不同編碼的文件引用到一個頁面不會有問題。

??? 測試文件下載

總結(jié)

以上是生活随笔為你收集整理的同一页面引入多个JS文件的编码问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。