C#字符集编码的使用
-
ASCII
:西欧字符集 -
GB2312
:国家简体中文字符集,兼容ASCII。 -
BIG5
:统一繁体字编码 -
GBK
:它是GB2312的扩展,支持简体和繁体字,兼容GB2312 -
GB18030
:在GBK基础上继续扩展生僻字和日文、朝鲜语等的编码,兼容GBK -
UNICODE
:为世界650种语言进行统一编码,只兼容ASCII对GB系列都不兼容
eg:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
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); } |
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_43024228/article/details/90901141