C#中的字符串及其编码转换

(转自:http://blog.sina.com.cn/s/blog_498eab7d0100et7j.html)

根据查找的System.Text.Encoding类的属性,方法写了如下的转换程序:

 1         public string UTF8ToGB2312(string str)2         ...{3             try4             ...{   5                 Encoding utf8 = Encoding.GetEncoding(65001);6                 Encoding gb2312 = Encoding.GetEncoding("gb2312");//Encoding.Default ,9367                 byte[] temp = utf8.GetBytes(str);8                 byte[] temp1 = Encoding.Convert(utf8, gb2312, temp);9                 string result = gb2312.GetString(temp1);
10                 return result;
11             }
12             catch (Exception ex)//(UnsupportedEncodingException ex)
13             ...{
14                 MessageBox.Show(ex.ToString());
15                 return null;
16             }
17         }
18         public string GB2312ToUTF8(string str)
19         ...{
20             try
21             ...{
22                 Encoding uft8 = Encoding.GetEncoding(65001);
23                 Encoding gb2312 = Encoding.GetEncoding("gb2312");
24                 byte[] temp = gb2312.GetBytes(str);
25                 MessageBox.Show("gb2312的编码的字节个数:" + temp.Length);
26                 for (int i = 0; i < temp.Length; i++)
27                 ...{
28                     MessageBox.Show(Convert.ToUInt16(temp[i]).ToString());
29                 }
30                 byte[] temp1 = Encoding.Convert(gb2312, uft8, temp);
31                 MessageBox.Show("uft8的编码的字节个数:" + temp1.Length);
32                 for (int i = 0; i < temp1.Length; i++)
33                 ...{
34                     MessageBox.Show(Convert.ToUInt16(temp1[i]).ToString());
35                 }
36                 string result = uft8.GetString(temp1);
37                 return result;
38             }
39             catch (Exception ex)//(UnsupportedEncodingException ex)
40             ...{
41                 MessageBox.Show(ex.ToString());
42                 return null;
43             }
44         }

主要使用的就是获取编码方式的类对象,
Encoding utf8 = Encoding.GetEncoding(65001);//使用code page
Encoding gb2312 = Encoding.GetEncoding("gb2312");//通过bodyname
获取字符编码字节序列:byte[] temp=utf8.GetBytes(str);
编码方式转换:byte[] temp1=Encoding.Convert(utf8, gb2312, temp);
获取编码的字符串:string str1=gb2312.GetString(temp1);
这样即完成了字符编码的转换。
Encoding.Default在 简体中文os中一般是gb2312格式

网上流传的第二种方法:

在使用MySql时会遇到中文乱码的问题就此写下面两个函数  
         *    在写入数据库和从数据库读出时将编码改变  
         *    author:alice  
         *    date        :2006/1/25  
      */  
      //写入数据库时进行转换

 1  public   string    GB2312_ISO8859(string    write)  2       {  3         //声明字符集  4          System.Text.Encoding    iso8859,    gb2312;  5         //iso8859  6          iso8859   =    System.Text.Encoding.GetEncoding("iso8859-1");  7         //国标2312  8          gb2312   =    System.Text.Encoding.GetEncoding("gb2312");  9         byte[]    gb;
10          gb   =    gb2312.GetBytes(write);
11         //返回转换后的字符
12         return    iso8859.GetString(gb);
13        }
14
15       //读出时进行转换
16       public   string    ISO8859_GB2312(string    read)
17       {
18         //声明字符集
19          System.Text.Encoding    iso8859,gb2312;
20         //iso8859
21          iso8859         =    System.Text.Encoding.GetEncoding("iso8859-1");
22         //国标2312
23          gb2312   =    System.Text.Encoding.GetEncoding("gb2312");
24         byte[]    iso;
25          iso   =    iso8859.GetBytes(read);
26         //返回转换后的字符
27         return    gb2312.GetString(iso);
28        }

分类: ASP.NET

C#-中的字符串及其编码转换相关推荐

  1. bee 字符串转int_beego中gbk和utf8编码转换问题

    beego中gbk和utf8编码转换问题,这个问题非常重要,有时候从gbk采集过来转成utf8也非常重要. func Get_cate_urls(url string) (map[int]string ...

  2. 实现字符串的编码转换,用以解决字符串乱码问题

    引起乱码的情况很多~实质上 主要是字符串本身的编码格式 与程序所需要的编码格式不一致导致的.要解决乱码其实很简单, 分2步 : 1:获取到字符串 本身的编码 2:改变字符串编码 (本身编码 -> ...

  3. URL中关于空格的编码转换成+或转换成%20的问题

    https://www.jianshu.com/p/4a7eb969235d 本人Android开发,某一天,被告知自己程序URL的编码中,空格被转换成了+,导致对方识别不成空格.当然我清楚的记得我是 ...

  4. python中对字符串进行编码_Python 中的字符串编码

    对Python字符编码一直没搞明白,今天看<Python参考手册>再次遇到这个问题,重新整理下 Python中字符串字面量用于指定一个字符序列,其定义方法是把文本放入单引号('),双引号( ...

  5. python中encode与decode编码转换

    encode() 查看源码,encode()是str类的一个成员方法,可以把str类型的数据变成bytes(字节对象) 当我们想把str类型的数据通过网络传输时,使用encode()编码再传输. de ...

  6. 以Base64字符串形式上传文件——服务器端Java/Servlet接受请求数据中的字符串内容并转换成文件

    简述 在常规的web开发过程中,大部分上传文件都是在web页面端通过表单直接提交,再由服务器端捕获请求来进行处理的.但是在前后端分离趋于一种流行趋势,再加上Android和iOS开发技术日渐成熟,大部 ...

  7. js html转为实体,字符串js编码转换成实体html编码的方法(防范XSS攻击)

    js代码在html页面中转换成实体html编码的方法一: js代码转换成实体html js代码转换成实体html--红 function test(){ alert('测试红') } test(); ...

  8. 中文字符串的编码转换 UTF-8//GBK

    golang在处理中文时默认的是utf-8编码,当某些情况下遇到GBK编码或需要GBK编码时,就会出现显示乱码的问题. 1. simplifiedchinese golang官方有针对中文编码转换的包 ...

  9. 网站建设ASP中UTF-8与GB2312编码转换乱码问题的解决方法

    现在blog程序一般都是utf-8编码的,要在网站里加入其它的程序的话,如果不是utf-8而是gb2312的话,在页面转换的时候很容易出现打开的页面时乱码,经过查找资料和测试,总结出现在最好的一个方法 ...

最新文章

  1. ios Standard Framework和Umbrella Framework
  2. office插件开发_Visual Studio Code有哪些你常用的插件?
  3. TensorFlow固化模型+打包程序+web API
  4. 前端路由简介以及vue-router实现原理
  5. 网络传输 中文乱码问题
  6. linux线程出错,在线程应用程序(linux,pthreads)中读取文件大小时出错
  7. YouTube将关闭原创节目部门
  8. gcc中的结构体成员位域
  9. 回溯法采用的搜索策略_强化学习基础篇(三十四)基于模拟的搜索算法
  10. [理解] Linux 作为一个服务器是怎样的存在 (一)
  11. ROS 启动自带摄像头或者USB摄像头
  12. Windows下使用platform.pk8 和platform.x509.pem生成jks签名文件
  13. vim命令下显示行号
  14. MAC开机启动项学习笔记
  15. 网吧组建及相关技术(无盘技术;VLAN;PacketTrace)
  16. 查看 win 系统开机关机,启动时间
  17. Word文档插入图片的问题
  18. Checking Table 设计模式 - 从概念、建模、设计到实现——兼谈基于业务需求驱动的设计模式创新
  19. 半入耳式蓝牙耳机哪款音质好?音质最好的半入耳蓝牙耳机推荐
  20. Effie 与文字讲缘分,与写作者交朋友

热门文章

  1. linux xz 解压initrd.img,initrd.img的压缩(制作)及解压的过程
  2. apply和call的使用
  3. VTK——Canny算子
  4. 13、数码相框编写程序之支持中文和课后作业
  5. WZOI-151至170题答案
  6. Matreya / 艾美捷 葡萄糖脑苷标准品
  7. C语言数组练习-字符统计
  8. 升级MacOS之后 IDEA文件内容变化但是文件标题颜色不变
  9. Java实现定时发送邮件功能
  10. 为什么俄罗斯的数学那么牛?