【其他】encode的差異

/
0 Comments
寫網頁時,常會遇到encode的問題(以下簡單說明)


如果沒特別說明,Unicode 在微軟視窗系統下就是指 UTF-16 Little Endian。
Unicode (UTF-8) 就是 UTF-8,會特別指明。

UTF-16 可和 UCS-2 大致視為相同。
UTF-16 就是 2 bytes,UTF-8 是 1 byte ~ 4 bytes。可變動字節 (位元組)。
UTF-8 編碼的中文,很多都是落在 3 bytes,所以才有人說資料庫轉換後,空間會比 Big5 多出一半。

如果有一篇文章,以英數字元為主,用傳統編碼和 UTF-8 編碼,檔案大小幾乎沒有差別。如果用 UTF-16 編碼,檔案大小會增加一倍。

顯然,對於英數字元,用 UTF-16 並非明智之舉。雖然儲存容量不是問題,但為了和世界其他國家正確交換訊息,是很划不來的。

如果有一篇文章,以中文字元為主,用傳統編碼和 UTF-8 編碼,檔案大小就有差別了。理論上通常是原本檔案大小的 1.5 倍。如果用 UTF-16 編碼,檔案大小就和傳統編碼幾乎沒有差別了。

所以,這也是為何網頁相關的應用,採用的往往都是 UTF-8 編碼,而不是 UTF-16 編碼。
當然,BOM 的問題,也是 UTF-8 被採用的一個重要理由。



不想了解這麼多,Windows 使用者至少記得以下幾點:

1. 和網頁有關的,需要利用網頁應用的資料,像是 html/xml/txt,用 UTF-8 就對了。
2. 不需要交流的,或是應用程式,用 UTF-16,或是非 Unicode 編碼,都不反對。
3. 需要 Tag 的,例如多媒體檔案 mp3/mkv/ape/... 這些,用 UTF-8。

沒有強迫各位一定非要用 UTF-16、UTF-8,要看使用時機。如果只是為了 UTF-8 而 UTF-8,不探討「升級的原因、理由」,只是因為「別人都在用」、「很多人都在用」,那自己也不知道要說什麼才好。





You may also like

沒有留言: