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

 更新时间:2023年01月24日 13:43:33   作者:Danny_hi  
这篇文章主要介绍了C#字符集编码的使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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

否则就会报这种错误:

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

总结

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

相关文章

  • C#中SerialPort的使用教程详解

    C#中SerialPort的使用教程详解

    SerilPort是串口进行数据通信的一个控件,这篇文章主要为大家详细介绍了C#中SerialPort的使用,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • C#多线程的Join()方法

    C#多线程的Join()方法

    这篇文章介绍了C#多线程的Join()方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C#的十种语法糖介绍

    C#的十种语法糖介绍

    这篇文章介绍了C#的十种语法糖,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • 如何解决hash冲突

    如何解决hash冲突

    上篇文章 为什么哈希存取比较快?使用它需要付出什么代价 只是简单介绍了使用hash所带来的利与弊。并未涉及hash的技术细节,本文则着重学习一下如何解决哈希编址的冲突问题。
    2016-06-06
  • C#并发编程入门教程之概述

    C#并发编程入门教程之概述

    这篇文章主要给大家介绍了关于C#并发编程之概述的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用c#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 详解如何在ASP.NET Core配置请求超时中间件

    详解如何在ASP.NET Core配置请求超时中间件

    本文参考官方文档,为大家详细介绍如何使用Asp.net core 8.0 的最小API 模板项目,配置超时中间件,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2024-01-01
  • C#实现线性搜索算法

    C#实现线性搜索算法

    线性搜索算法是一种基本的搜索算法,通过逐个比较元素来查找目标元素,学习线性搜索算法有助于培养算法思维和编程能力,对于初学者来说是一种重要的算法训练,感兴趣的可以了解一下
    2024-10-10
  • C#使用自带的email组件发送邮件的方法

    C#使用自带的email组件发送邮件的方法

    这篇文章主要介绍了C#使用自带的email组件发送邮件的方法,涉及C#发送邮件的相关技巧,需要的朋友可以参考下
    2015-05-05
  • C#文件和字节流的转换方法

    C#文件和字节流的转换方法

    这篇文章主要介绍了C#文件和字节流的转换方法,涉及C#将文件以字节流形式读取及将字节流写入文件的相关技巧,需要的朋友可以参考下
    2015-05-05
  • dotnet core链接mongodb代码实例

    dotnet core链接mongodb代码实例

    这篇文章主要介绍了dotnet core链接mongodb代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12

最新评论