C#字符集编码的使用及说明
短信预约 -IT技能 免费直播动态提醒
C#字符集编码的使用
ASCII
:西欧字符集GB2312
:国家简体中文字符集,兼容ASCII。BIG5
:统一繁体字编码GBK
:它是GB2312的扩展,支持简体和繁体字,兼容GB2312GB18030
:在GBK基础上继续扩展生僻字和日文、朝鲜语等的编码,兼容GBKUNICODE
:为世界650种语言进行统一编码,只兼容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字符集互相转换,代码和注意点
如题,在此仅写出 utf8 和 gbk 转换的代码,转换为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);
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341