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

作者:Danny_hi 时间:2023-12-05 02:06:05 

C#字符集编码的使用

  • ASCII:西欧字符集

  • GB2312:国家简体中文字符集,兼容ASCII。

  • BIG5:统一繁体字编码

  • GBK:它是GB2312的扩展,支持简体和繁体字,兼容GB2312

  • GB18030:在GBK基础上继续扩展生僻字和日文、朝鲜语等的编码,兼容GBK

  • UNICODE:为世界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);

否则就会报这种错误:

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

以下是全部代码,记得要在文件开头添加引用: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);
       }

来源:https://blog.csdn.net/qq_43024228/article/details/90901141

标签:C#,字符集,编码
0
投稿

猜你喜欢

  • Android实现悬浮窗的简单方法实例

    2023-06-17 18:11:02
  • c# 实现汉诺塔游戏

    2022-11-21 01:02:57
  • htmlcleaner使用方法及xpath语法初探

    2023-04-11 07:14:06
  • Java 类加载机制详细介绍

    2023-12-19 13:55:59
  • Android实现拍照、选择相册图片并裁剪功能

    2022-09-22 12:25:44
  • Maven默认中央仓库(settings.xml 配置详解)

    2021-10-17 12:25:40
  • C#控件闪烁的解决方法

    2023-02-27 07:30:41
  • Spring和Hibernate的整合操作示例

    2023-08-08 11:57:52
  • IDEA中java断言assert语法及使用

    2022-12-28 21:07:00
  • WPF MVVM制作发送短信小按钮

    2021-10-26 09:48:12
  • Android实现自动变换大小的ViewPager

    2023-03-19 06:56:15
  • Java 实战项目锤炼之网上花店商城的实现流程

    2021-09-14 04:51:45
  • Java反射根据不同方法名动态调用不同的方法(实例)

    2022-05-08 00:51:47
  • Java11 发布前抓紧掌握这些新特性

    2022-02-08 13:20:58
  • java 实现文件复制和格式更改的实例

    2023-10-21 08:07:49
  • springboot连接sqllite遇到的坑及解决

    2023-04-27 04:37:38
  • Android实现今日头条订阅频道效果

    2021-10-29 23:30:00
  • JDK8中的HashMap初始化和扩容机制详解

    2023-11-25 10:06:44
  • C#控制台输出进度和百分比的实例代码

    2021-10-01 23:49:43
  • C语言入门篇--初识指针和指针变量

    2022-05-31 06:10:45
  • asp之家 软件编程 m.aspxhome.com