utf-8與gb2312的區別
各個國家和地區所制定的不同 ANSI 編碼標準中,都只規定了各自語言所需的“字元”。比如:漢字標準(GB2312)中沒有規定韓國語字元怎樣儲存。這些 ANSI 編碼標準所規定的內容包含兩層含義: 1. 使用哪些字元。也就是說哪些漢字,字母和符號會被收入標準中。所包含“字元”的集合就叫做“字符集”。 2. 規定每個“字元”分別用一個位元組還是多個位元組儲存,用哪些位元組來儲存,這個規定就叫做“編碼”。
各個國家和地區在制定編碼標準的時候,“字元的集合”和“編碼”一般都是同時制定的。因此,平常我們所說的“字符集”,比如:GB2312, GBK, JIS 等,除了有“字元的集合”這層含義外,同時也包含了“編碼”的含義。
“UNICODE 字符集”包含了各種語言中使用到的所有“字元”。。用來給 UNICODE 字符集編碼的標準有很多種,比如:UTF-8, UTF-7, UTF-16, UnicodeLittle, UnicodeBig 等。
1、ISO-8859-1:
最簡單的編碼規則,每一個位元組直接作為一個 UNICODE 字元。比如,[0xD6, 0xD0] 這兩個位元組,通過 iso-8859-1 轉化為字串時,將直接得到 [0x00D6, 0x00D0] 兩個 UNICODE 字元,即 "ÖÐ"。
反之,將 UNICODE 字串通過 iso-8859-1 轉化為位元組串時,只能正常轉化 0~255 範圍的字元。
2、GB2312,
utf-8 GBK gb2312三者之間的聯絡
UTF-8:Unicode TransformationFormat-8bit,允許含BOM,但通常不含BOM。是用以解決國際上字元的一種多位元組編碼, 它對英文使用8位(即一個位元組),中文使用24為(三個位元組)來編碼。UTF-8包含全世界所有國家需要用到的字元,是國際編碼,通用性強。UTF-8編 碼的文字可以在各國支援UTF8字符集的瀏覽器上顯示。如,如果是UTF8編碼,則在外國人的英文IE上也能顯示中文,他們無需下載IE的中文語言支援 包。
GBK是國家標準GB2312基礎上擴容後相容GB2312的標準。GBK的文字編碼是用雙位元組來表示的,即不論中、英文字元均使用雙位元組來表示,為了區分中文,將其最高位都設定成1。GBK包含全部中文字元,是國家編碼,通用性比UTF8差,不過UTF8佔用的資料庫比GBD大。
UTF-8與GBK GB2312之間的轉換關係
GBK、GB2312等與UTF8之間都必須通過Unicode編碼才能相互轉換: GBK、GB2312--Unicode--UTF8 UTF8--Unicode--GBK、GB2312