C#-中的字符串及其编码转换
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#-中的字符串及其编码转换相关推荐
- bee 字符串转int_beego中gbk和utf8编码转换问题
beego中gbk和utf8编码转换问题,这个问题非常重要,有时候从gbk采集过来转成utf8也非常重要. func Get_cate_urls(url string) (map[int]string ...
- 实现字符串的编码转换,用以解决字符串乱码问题
引起乱码的情况很多~实质上 主要是字符串本身的编码格式 与程序所需要的编码格式不一致导致的.要解决乱码其实很简单, 分2步 : 1:获取到字符串 本身的编码 2:改变字符串编码 (本身编码 -> ...
- URL中关于空格的编码转换成+或转换成%20的问题
https://www.jianshu.com/p/4a7eb969235d 本人Android开发,某一天,被告知自己程序URL的编码中,空格被转换成了+,导致对方识别不成空格.当然我清楚的记得我是 ...
- python中对字符串进行编码_Python 中的字符串编码
对Python字符编码一直没搞明白,今天看<Python参考手册>再次遇到这个问题,重新整理下 Python中字符串字面量用于指定一个字符序列,其定义方法是把文本放入单引号('),双引号( ...
- python中encode与decode编码转换
encode() 查看源码,encode()是str类的一个成员方法,可以把str类型的数据变成bytes(字节对象) 当我们想把str类型的数据通过网络传输时,使用encode()编码再传输. de ...
- 以Base64字符串形式上传文件——服务器端Java/Servlet接受请求数据中的字符串内容并转换成文件
简述 在常规的web开发过程中,大部分上传文件都是在web页面端通过表单直接提交,再由服务器端捕获请求来进行处理的.但是在前后端分离趋于一种流行趋势,再加上Android和iOS开发技术日渐成熟,大部 ...
- js html转为实体,字符串js编码转换成实体html编码的方法(防范XSS攻击)
js代码在html页面中转换成实体html编码的方法一: js代码转换成实体html js代码转换成实体html--红 function test(){ alert('测试红') } test(); ...
- 中文字符串的编码转换 UTF-8//GBK
golang在处理中文时默认的是utf-8编码,当某些情况下遇到GBK编码或需要GBK编码时,就会出现显示乱码的问题. 1. simplifiedchinese golang官方有针对中文编码转换的包 ...
- 网站建设ASP中UTF-8与GB2312编码转换乱码问题的解决方法
现在blog程序一般都是utf-8编码的,要在网站里加入其它的程序的话,如果不是utf-8而是gb2312的话,在页面转换的时候很容易出现打开的页面时乱码,经过查找资料和测试,总结出现在最好的一个方法 ...
最新文章
- ios Standard Framework和Umbrella Framework
- office插件开发_Visual Studio Code有哪些你常用的插件?
- TensorFlow固化模型+打包程序+web API
- 前端路由简介以及vue-router实现原理
- 网络传输 中文乱码问题
- linux线程出错,在线程应用程序(linux,pthreads)中读取文件大小时出错
- YouTube将关闭原创节目部门
- gcc中的结构体成员位域
- 回溯法采用的搜索策略_强化学习基础篇(三十四)基于模拟的搜索算法
- [理解] Linux 作为一个服务器是怎样的存在 (一)
- ROS 启动自带摄像头或者USB摄像头
- Windows下使用platform.pk8 和platform.x509.pem生成jks签名文件
- vim命令下显示行号
- MAC开机启动项学习笔记
- 网吧组建及相关技术(无盘技术;VLAN;PacketTrace)
- 查看 win 系统开机关机,启动时间
- Word文档插入图片的问题
- Checking Table 设计模式 - 从概念、建模、设计到实现——兼谈基于业务需求驱动的设计模式创新
- 半入耳式蓝牙耳机哪款音质好?音质最好的半入耳蓝牙耳机推荐
- Effie 与文字讲缘分,与写作者交朋友