C#字符集編碼的使用及說明
更新時間:2023年01月24日 13:43:33 作者:Danny_hi
這篇文章主要介紹了C#字符集編碼的使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
C#字符集編碼的使用
ASCII
:西歐字符集GB2312
:國家簡體中文字符集,兼容ASCII。BIG5
:統(tǒng)一繁體字編碼GBK
:它是GB2312的擴展,支持簡體和繁體字,兼容GB2312GB18030
:在GBK基礎(chǔ)上繼續(xù)擴展生僻字和日文、朝鮮語等的編碼,兼容GBKUNICODE
:為世界650種語言進行統(tǒng)一編碼,只兼容ASCII對GB系列都不兼容
eg:
public static int GetGBKValue(string key) { byte[] gbk = Encoding.GetEncoding("GBK").GetBytes(key); //或者byte[] gbk = Encoding.UTF8.GetBytes(key); string code = ""; foreach (byte b in gbk) { code += string.Format("{0:X2}", b); } int gbkValue = int.Parse(code, NumberStyles.HexNumber); return gbkValue; }
C# utf8和GBK,GB2312字符集互相轉(zhuǎn)換,代碼和注意點
如題,在此僅寫出 utf8 和 gbk 轉(zhuǎn)換的代碼,轉(zhuǎn)換為gb2312只需要將引號中的gbk替換為gb2312即可。
需要特別注意的是,至少在vs里編寫代碼時,如果使用gbk等字符集,必須加上這一行代碼:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
否則就會報這種錯誤:
以下是全部代碼,記得要在文件開頭添加引用:using System.Text;
using System.Text; ... public static string UTF8ToGBK(string text) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); try { Encoding utf8 = Encoding.UTF8; Encoding gbk = Encoding.GetEncoding("gbk");//Encoding.Default ,936 byte[] temp = utf8.GetBytes(text); byte[] temp1 = Encoding.Convert(utf8, gbk, temp); string result = gbk.GetString(temp1); return result; } catch { return null; } } public static string GBKToUTF8(string str) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); Encoding utf8; Encoding gbk; utf8 = Encoding.GetEncoding("utf-8"); gbk = Encoding.GetEncoding("gbk"); byte[] gb = gbk.GetBytes(str); gb = Encoding.Convert(gbk, utf8, gb); return utf8.GetString(gb); }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。