C#字符集編碼的使用及說(shuō)明
更新時(shí)間:2023年01月24日 13:43:33 作者:Danny_hi
這篇文章主要介紹了C#字符集編碼的使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
C#字符集編碼的使用
ASCII:西歐字符集GB2312:國(guó)家簡(jiǎn)體中文字符集,兼容ASCII。BIG5:統(tǒng)一繁體字編碼GBK:它是GB2312的擴(kuò)展,支持簡(jiǎn)體和繁體字,兼容GB2312GB18030:在GBK基礎(chǔ)上繼續(xù)擴(kuò)展生僻字和日文、朝鮮語(yǔ)等的編碼,兼容GBKUNICODE:為世界650種語(yǔ)言進(jìn)行統(tǒng)一編碼,只兼容ASCII對(duì)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)換,代碼和注意點(diǎn)
如題,在此僅寫出 utf8 和 gbk 轉(zhuǎn)換的代碼,轉(zhuǎn)換為gb2312只需要將引號(hào)中的gbk替換為gb2312即可。
需要特別注意的是,至少在vs里編寫代碼時(shí),如果使用gbk等字符集,必須加上這一行代碼:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
否則就會(huì)報(bào)這種錯(cuò)誤:

以下是全部代碼,記得要在文件開(kāi)頭添加引用: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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解如何在ASP.NET Core配置請(qǐng)求超時(shí)中間件
本文參考官方文檔,為大家詳細(xì)介紹如何使用Asp.net core 8.0 的最小API 模板項(xiàng)目,配置超時(shí)中間件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2024-01-01

