close

因為常常瀏覽對岸的網站,有些時候總是因為對岸盜版資源太豐富,而不得不倒戈。

尤其前陣子在下載電子書之類的,因為都是簡體的,所以研究了一下文字編碼,希望可以稍微了解一點。

以下是我對於編碼所蒐集到的資訊,如果說有什麼錯誤的,誰看到了麻煩告訴我一下。

 

主要常見的文字編碼,以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的標籤等等都可以做編碼轉換。

arrow
arrow
    全站熱搜

    windsoul0312 發表在 痞客邦 留言(3) 人氣()