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的话,在页面转换的时候很容易出现打开的页面时乱码,经过查找资料和测试,总结出现在最好的一个方法 ...
最新文章
- 腾讯云主机安全防护(云镜卸载)--/usr/local/qcloud/YunJing/YDEyes/YDService
- latex中\begin{verbatim}以及\verb有什么用?
- 通信专业学python有用吗-一起学Python:网络通信过程
- 从nginx日志原始二进制数据还原文件
- ubuntu系统批量端口永久开放
- 一和零(二维01背包)
- 【Java】5.3 成员变量和局部变量
- html 加粗_若想学前端开发,要从HTML基本元素开始第一节
- [NOTE] SQLite基础及注入相关
- mysql数据库连接ado_mysql:2种连接数据库方式:ADO连接、mysql的API连接 | 学步园...
- ide 日志 乱码_IDE日志分析方法pt。 1个
- (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节1:I/O设备的概念和分类
- linux 内核学习线索初步
- graphpad如何加标注_如何以YOLOv3训练自己的数据集 以小蕃茄为例
- 生成mysql.sock_mysql.sock不在了,怎么手工创建一个,并设置相应属性
- 冬季好去处七彩蝴蝶园,温暖如春彩蝶纷飞
- 各类稀奇好用的网站,你值得拥有!
- 求小于整数N的最大素数
- “三网融合”的过去、现在与未来
- 计算机高配表要表格,为何高配电脑还会卡? 因为你没选择FreeSync套装
热门文章
- Windows Server R2 安装Visual Studio 2015失败!KB2919355
- 手机连接虚拟机服务器,架构微信内网开发环境
- Qt学习总结之Qlineedit
- caller和callee的使用方法
- jquery 移除onfocus事件
- python scrapy框架爬取豆瓣top250电影篇一Windows下建立Scrapy项目,pycharm编辑
- linux安装redis没有bin,Linux下安装redis
- Android studio自己导入的图片在ImageView中找不到
- 英安特1600说明书_英安特报警主机修改时间 英安特1600简易编程
- 基于SpringBoot+Vue的动漫漫画投稿网站 element