字元編碼及其轉換

2021-08-04 08:25:20 字數 977 閱讀 3847

1. ascii(單字儲存)

ascii碼使用單字儲存,即8位儲存,所以最多只能編碼256個字元,主要為西文服務。ascii碼劃分為兩個集合:128個字元的標準ascii碼和附加的128個字元的擴充ascii碼。

2. ansi(單字儲存,也可以理解為單雙字混存)

ansi是ascii字符集的擴充,在儲存ascii字元的時候,就使用ascii編碼單字儲存(標準ascii碼,第8位為0);而在儲存像中文這樣需要雙字儲存的字元時,使用兩個擴充ascii碼(擴充ascii碼,第8位為1),系統解碼時找兩個擴充碼解碼。

簡體中文本元編碼gb-2312就是ansi字符集,由6763個常用漢字和682個全形的非漢字字元組成,一些生僻字是顯示不出來的。

ansi字符集的缺點就是國際不通用,在簡體中文作業系統中 ansi 編碼代表 gb2312 編碼,在日文作業系統下,ansi 編碼代表 jis 編碼,解碼時可能最終顯示的是中文,也可能顯示的是日文。

3. unicode(雙字儲存,unicode編碼標準中也有4字儲存標準)

可以表示65536個字元。將世界上幾乎所有語言的常用字元收錄其中,方便了資訊交流(與ansi編碼不同,unicode編碼國際通用,每個編碼代表世界上唯一的乙個字元)。標準的unicode稱為utf-16。前128個字元位和ascii碼相容,例如,在ascii碼中『a』為單字0x41,在ansi中『a』為雙字0x0041

4. utf-8,utf-16和utf-32。

unicode用一些基本的保留字元制定了三套編碼方式。它們分別是utf-8,utf-16和utf-32。正如名字所示,在utf-8中,字元是以8位序列來編碼的,用乙個或幾個位元組來表示乙個字元。這種方式的最大好處,是utf-8保留了ascii字元的編碼做為它的一部分,例如,在utf-8和ascii中,「a」的編碼都是0x41.

utf-16和utf-32分別是unicode的16位和32位編碼方式。

字元編碼轉換

這幾天在做個東西,就是關於網路字元編碼轉換的問題,此前這方面一點兒也不懂,頭要的急所以從快入手,先上網了解了一下字元編碼到底是什麼東西,於是知道了內碼轉換,gb2312,big5,unicode等東西,不懂的可以從網上搜搜,我也是搜的,建議大家先看看這個 http www.vckbase.com d...

C 中的字串及其編碼轉換

自 根據查詢的system.text.encoding類的屬性,方法寫了如下的轉換程式 1 public string utf8togb2312 string str 2 12 catch exception ex unsupportedencodingexception ex 13 17 18 p...

C 中的字串及其編碼轉換

自 根據查詢的system.text.encoding類的屬性,方法寫了如下的轉換程式 1 public string utf8togb2312 string str 2.12catch exception ex unsupportedencodingexception ex 13.17 18pub...