C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > C#字符集编码的使用

C#字符集编码的使用及说明

作者:Danny_hi

这篇文章主要介绍了C#字符集编码的使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

C#字符集编码的使用

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);
        }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文