因為常常瀏覽對岸的網站,有些時候總是因為對岸盜版資源太豐富,而不得不倒戈。
尤其前陣子在下載電子書之類的,因為都是簡體的,所以研究了一下文字編碼,希望可以稍微了解一點。
以下是我對於編碼所蒐集到的資訊,如果說有什麼錯誤的,誰看到了麻煩告訴我一下。
主要常見的文字編碼,以ANSI為其大宗。與目前流行而努力支援的Unicode有所不同。
ANSI是美國所制定的一種編碼,主要本來是用來存儲英文字元等。
其他語言國家透過相同的ANSI編碼,去做自己國家的語言文字對應,因而產生了中國GB、台灣Big5、日本Shift-JIS等。
以兩個2 Bytes對應一個文字來進行存儲。
這些都是ANSI編碼的一種,所以如果去用同樣的文字去轉換成別的編碼辨識,就會形成亂碼。
後來,因為沒有辦法在同一段文字,利用同一個編碼去呈現不同國家的語言。
所以發展了一種叫做Unicode的通用編碼。Unicode主要就是將全世界的語言文字都收錄,並且對應。
因此可以在同一段文字中,呈現不同的國家語言,同時轉換到不同的電腦語言系統,也都不會亂碼,因為辨識的都是相同的Unicode。
常見的Unicode標準裡面,有幾種編碼存儲方式。
UTF-8 和 UTF-16兩大類
UTF-8記錄方式是8 bit一個單位,不同的文字採用不固定的長度記錄。
因此不同的字會有不同的記憶體佔用大小。
主要分成1 Byte、2 Bytes、3 Bytes三種大小,其中,中日韓的文字大多落在3 Bytes,故如果將ANSI轉換成UTF-8,檔案通常較大。
另外一種叫做UTF-16,其主要是用16 bit為一單位,基本上與UTF-8相容,
但是UTF-16有兩種的存儲方式,一種是Unicode-LE、一種是Unicode-BE。
主要的分別是「尾序( Endian )」的不同。
小尾序(LE)的話,Microsoft 或 Linux 的文件是以 LE( Little Endian ) 來存的。
大尾序(BE)的話,Macintosh 的文件是以 BE( Big Endian ) 來存的。
所以我們台灣常用的Microsoft系統,大多是Unicode-LE為主。
附註:
在Windows記事本裡面,有幾種存儲的方式。
分別是ANSI、Unicode(=Unicode Little Endian)、Unicode Big Endian、UTF-8等編碼。
備註一:
利用手機觀看TXT檔案的話,輔以對岸玩家所寫的MOTO-TXT,只要支援JAVA的手機應該都可以使用。
(確實測試:Nokia 6300的S40系統,還有Sony Ericsson的W350i皆正常支援。)
使用時,如果轉換成繁體的話,可以存成Unicode-LE,這樣就可以正常辨識。
備註二:
如果說想要將TXT轉換中文的編碼,可以利用ConvertZ這個小程式。
功能很多,包括MP3的ID3或是APE的標籤等等都可以做編碼轉換。
留言列表