C#字符集编码的使用及说明
作者:Danny_hi 发布时间:2023-12-05 02:06:05
标签:C#,字符集,编码
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);
}
来源:https://blog.csdn.net/qq_43024228/article/details/90901141


猜你喜欢
- 一、在drawable下面添加xml文件rounded_editview.xml<?xml version="1.0&quo
- 一、线程的生命周期1.五种状态:新建状态、就绪状态、运行状态、阻塞状态、消亡状态2.就绪状态的线程表示有权利去获取CPU的时间片,CPU时间
- 本文实例讲述了Android开发实现浏览器全屏显示功能。分享给大家供大家参考,具体如下:业务需求:浏览器设置中支持全屏显示的功能。分析:只需
- 通过继承Thread类并实现run方法创建一个线程// 定义一个Thread类,相当于一个线程的模板class MyThread01 ext
- 基于SpringCloud微服务平台,进行服务实例监控及健康检查,注册中心为eureka,SpringBoot提供了很好的组件SpringB
- /// <summary> /// 通过IP得到IP所在地省市(Po
- 开篇:我们将前面的springboot整合H2内存数据库,实现单元测试与数据库无关性提供的Restful服务注册到spring cloud的
- mybatis使用${}时sql注入的问题最近在上线项目的时候,代码审查没有通过,提示有sql注入的风险。ORDER BY ${orderB
- 简介在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需
- 一、访问控制url匹配在前面讲解了认证中所有常用配置,主要是对http.formLogin()进行操作。而在配置类中 http.author
- Java及数据库对日期进行格式化Java对日期进行格式化可使用java.text.SimpleDateFormat示例package com
- 今天遇到文件上传的问题,使用Ajax方式进行提交,服务器一直报错The current request is not a multipart
- 这几年都在搞前后端分离、RESTful风格,我们项目中也在这样用。前几天有人遇到了解析JSON格式的请求数据的问题,然后说了一下解析的方式,
- 项目需要用到验证用户手机号码输入是否合法,在网上找了好几处代码,经过测试都是不通过的!最后发现了一段代码可以验证通过。代码好像在一个很多广告
- /* * 文 件 名: DataCleanManager.java * 描 &nb
- // 1. 实现一个函数,在一个有序整型数组中二分查找出指定的值,找到则返回该值的位置,找不到返回 -1。package demo;publ
- 以下摘自胖哥分享的 2022开工福利教程。在学习Spring Security的时候你有没有下面这两个疑问:Spring Security的
- 一、继承引言继承关系可以对不同模块的依赖版本做统一管理,因为子模块中的依赖基本都继承于父模块,父模块中指定哪个版本,子模块就继承哪个版本,可
- 本文实例为大家分享了Java实现简单学生管理系统的具体代码,供大家参考,具体内容如下名为StudentManageTest的Java测试类i
- 本文实例为大家分享了UGUI绘制平滑曲线的具体代码,供大家参考,具体内容如下绘制实现自定义的MaskableGraphic挂载在UGUI的U