很多朋友們都為字符編碼頭痛,特別是搞JAVA這一類的朋友。為什么會有這么多字符編碼出現的呢?因為字符編碼經歷了很多特殊情況。
先說中文字符吧,在80年代很多中國科學家都為在計算機顯示中文發愁,外國可以1個字節表示英文符號(也就是ACSII碼),那好中國人發明了GBK232碼,用兩個字節表示,只要電腦安裝漢字卡,后來卡都不用安裝,裝驅動就可以。那這一點的成功,臺灣省,日本。。。等都參考這一辦法也成功顯示了其它文字,如臺灣省BIG5編碼。GBK232升級為GBK,再升級為GBK18030(四個字節表示)。
微軟的WINDOWS就頭痛了,這么多的語言版本(當然也有我們的程序員也要開發多語言版本),那又出現Unicode碼簡稱為UCS-2,在這種語言環境下,不會再有語言的編碼沖突,在同屏下,可以顯示任何語言的內容,這就是Unicode的最大好處。目前已升級到UCS-4。在ASCII轉換成UCS-2的時候,只是在編碼前插入一個0x0。用這些編碼,會包括一些控制符,比如 '' 或 '/',這在UNIX和一些C函數中,將會產生嚴重錯誤。因此可以肯定,UCS-2不適合作為Unicode的外部編碼。因此,才誕生了UTF-8。
當然還有其它的BASE64、7BIT,Quoted printable等等常見的編碼。
先說中文字符吧,在80年代很多中國科學家都為在計算機顯示中文發愁,外國可以1個字節表示英文符號(也就是ACSII碼),那好中國人發明了GBK232碼,用兩個字節表示,只要電腦安裝漢字卡,后來卡都不用安裝,裝驅動就可以。那這一點的成功,臺灣省,日本。。。等都參考這一辦法也成功顯示了其它文字,如臺灣省BIG5編碼。GBK232升級為GBK,再升級為GBK18030(四個字節表示)。
微軟的WINDOWS就頭痛了,這么多的語言版本(當然也有我們的程序員也要開發多語言版本),那又出現Unicode碼簡稱為UCS-2,在這種語言環境下,不會再有語言的編碼沖突,在同屏下,可以顯示任何語言的內容,這就是Unicode的最大好處。目前已升級到UCS-4。在ASCII轉換成UCS-2的時候,只是在編碼前插入一個0x0。用這些編碼,會包括一些控制符,比如 '' 或 '/',這在UNIX和一些C函數中,將會產生嚴重錯誤。因此可以肯定,UCS-2不適合作為Unicode的外部編碼。因此,才誕生了UTF-8。
當然還有其它的BASE64、7BIT,Quoted printable等等常見的編碼。
浙公網安備 33010602011771號