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. 腾讯云主机安全防护(云镜卸载)--/usr/local/qcloud/YunJing/YDEyes/YDService
  2. latex中\begin{verbatim}以及\verb有什么用?
  3. 通信专业学python有用吗-一起学Python:网络通信过程
  4. 从nginx日志原始二进制数据还原文件
  5. ubuntu系统批量端口永久开放
  6. 一和零(二维01背包)
  7. 【Java】5.3 成员变量和局部变量
  8. html 加粗_若想学前端开发,要从HTML基本元素开始第一节
  9. [NOTE] SQLite基础及注入相关
  10. mysql数据库连接ado_mysql:2种连接数据库方式:ADO连接、mysql的API连接 | 学步园...
  11. ide 日志 乱码_IDE日志分析方法pt。 1个
  12. (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节1:I/O设备的概念和分类
  13. linux 内核学习线索初步
  14. graphpad如何加标注_如何以YOLOv3训练自己的数据集 以小蕃茄为例
  15. 生成mysql.sock_mysql.sock不在了,怎么手工创建一个,并设置相应属性
  16. 冬季好去处七彩蝴蝶园,温暖如春彩蝶纷飞
  17. 各类稀奇好用的网站,你值得拥有!
  18. 求小于整数N的最大素数
  19. “三网融合”的过去、现在与未来
  20. 计算机高配表要表格,为何高配电脑还会卡? 因为你没选择FreeSync套装

热门文章

  1. Windows Server R2 安装Visual Studio 2015失败!KB2919355
  2. 手机连接虚拟机服务器,架构微信内网开发环境
  3. Qt学习总结之Qlineedit
  4. caller和callee的使用方法
  5. jquery 移除onfocus事件
  6. python scrapy框架爬取豆瓣top250电影篇一Windows下建立Scrapy项目,pycharm编辑
  7. linux安装redis没有bin,Linux下安装redis
  8. Android studio自己导入的图片在ImageView中找不到
  9. 英安特1600说明书_英安特报警主机修改时间 英安特1600简易编程
  10. 基于SpringBoot+Vue的动漫漫画投稿网站 element