2012-10-05 21 views
0

有關如何處理多種編碼的一般/最佳實踐方法?因爲我網站上的js代碼對於每個頁面大致相同,所以將所有內容放到一個文件中是有道理的,但是我遇到了很多奇怪的問題,因爲一些文件是UTF-8,一些ASCII,一些有CLRF,一些射頻結局。使用不同的編碼連接javascript文件

編輯 到目前爲止,我已經使用貓,但據我所知,貓保持原來的編碼。

+0

您應該很清楚您遇到的問題。 ASCII(即代碼範圍爲0-127的字符)_is_有效的UTF-8,您無法區分這兩者,如果與實際的UTF-8文本連接,它不會導致問題。 Javascript將'CR'和'LF'解釋爲行終止符,所以混合行結束樣式也不應該出現任何問題。 – lanzz

回答

2

你絕對應該瞄準所有文件的統一編碼;如果UTF-8文件是其中之一,那麼UTF-8就是要走的路。 ASCII在這裏不是問題(ASCII是UTF-8的一個子集,所以你可以連接UTF-8和ASCII文件而沒有問題),但其他編碼(拉丁-1等)。你一定要避免在一個文件中混合編碼。

你還應該規範你的行尾(所有的CRLF或所有的LF,但不是兩個;當然不是在一個文件中 - 這只是醜陋的)。在Unix系統上,LF是標準,所以這可能是你應該使用的。

cat根本不會在乎編碼,它只是粘貼文件一起,所以一塌糊塗,如果你連接具有不同的編碼/行結尾的文件了。

+0

JS不關心換行風格,因爲'CR'和'LF'都被認爲是行結束符([ECMA-262](http://www.ecma-international.org/publications/files/ECMA-ST /Ecma-262.pdf),第7.3節)。該文件可能會讓_look_搞砸,但JS解析它應該沒有問題。 – lanzz

+0

@lanzz:當然,但它仍然很醜,誰知道它是否只需要JavaScript來處理文件?有些文本編輯器在使用混合換行文件時會感到非常困惑。 –

+0

跟進問題:您將使用什麼進行轉換? iconv要走的路?它真的轉換所有的文件?我已經將一些ASCII文件轉換爲UTF-8,但是運行'file'仍然將其顯示爲ASCII。 – jcfrei

相關問題