GB2312转换成UTF-8与utf_8转换成GB2312

 本文转载:http://www.cnblogs.com/jonhson/archive/2010/08/10/1796536.html

/// <summary>
        /// utf_8转换成GB2312
        /// </summary>
        /// <param name="utfInfo"></param>
        /// <returns></returns>
        private string ToGB2312(string utfInfo)
        {
            string gb2312Info = string.Empty;
            Encoding utf8 = Encoding.UTF8;
            Encoding gb2312 = Encoding.GetEncoding("gb2312");

            byte[] unicodeBytes = utf8.GetBytes(utfInfo);

            byte[] asciiBytes = Encoding.Convert(utf8, gb2312, unicodeBytes);

            char[] asciiChars = new char[gb2312.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
            gb2312.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
            string gb2312info = new string(asciiChars);
            return gb2312info;
        }

        /// <summary>
        /// GB2312转换成UTF-8
        /// </summary>
        /// <param name="gbInfo"></param>
        /// <returns></returns>
        private string ToUTF8(string gbInfo)
        {
            string Info = string.Empty;
            Encoding gb2312 = Encoding.GetEncoding("gb2312");
            Encoding utf_8 = Encoding.GetEncoding("UTF-8");

            byte[] unicodeBytes = gb2312.GetBytes(gbInfo);

            byte[] asciiBytes = Encoding.Convert(gb2312,utf_8 , unicodeBytes);

            char[] asciiChars = new char[utf_8.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
            utf_8.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
            string info = new string(asciiChars);
            return info;

        }

  

时间: 2024-10-28 13:32:08

GB2312转换成UTF-8与utf_8转换成GB2312的相关文章

编程-hex16进制转换把EXE转换成文本,那如何转换回来?

问题描述 hex16进制转换把EXE转换成文本,那如何转换回来? 一个16kb的exe软件,通过hex转换成16进制的一堆字符例如0x40165.....这些字符是文本格式,现在这么把一堆字符重新转换成.exe可执行文件? 解决方案 全部都当二进制文件来读写,这样可以写回后,只要文件内容都对,那么修改后缀就可以执行了 解决方案二: 1.把这堆字符,每两位转化为一个字节,写回一个普通文件(文件名不要是任何可执行文件的文件名) 2.把文件名改为EXE 3.执行 没试过,不过应该是可行的吧

Java技术 汉字转换成拼音简码 和 汉字转换成五笔简码

问题描述 Java技术汉字转换成拼音简码和汉字转换成五笔简码例如输入:侃侃拼音简码:KK五笔码:WW有写好的类最好 解决方案 解决方案二:拼音的话网上有写好的包,五笔还是算了,没发现过解决方案三:这样都可以啊??学习中解决方案四:有些繁体拼音也不可以显示

link中对一个变量可以强制转换,那么能不能强制转换一个函数为静态函数?

问题描述 link中对一个变量可以强制转换,那么能不能强制转换一个函数为静态函数? link中对一个变量可以强制转换,那么能不能强制转换一个函数为静态函数? 解决方案 你也太任性了.变量可以强制转换,那函数就可以转换啊. 面包可以吃,那秤砣也可以吃啊.什么逻辑?

java 做的桌面程序可以打包成EXE,但能打包成MSI安装吗?

问题描述 java 做的桌面程序可以打包成EXE,但能打包成MSI安装吗?如果可以,要怎么做,有没有什么好的免费的工具使用?我自己知道可以先打包成EXE,然后再用工具转换成MSI,但不知道JAVA桌面程序能不能打包成MSI来安装呢? 问题补充:liveHappy 写道 解决方案 我只找到一个.使用一个开源的组件(jdic)的包装器组件 ,把JNLP(Java Web Start)应用转换成本地安装程序,那么如果是windows系统的话包装成的就是msi,它仅仅为Web Start应用提供点击安装

code::blocks中把10^9定义成double型没有溢出定义成long double型却溢出

问题描述 code::blocks中把10^9定义成double型没有溢出定义成long double型却溢出 code::blocks(GNU GCC Complier)中把10^9定义成double型没有溢出,定义成long double型反倒溢出了.而10^9既没有超过double的范围,更没有超过Long double的范围,这是GNU GCC Complier的bug吗?我的code::blocks是16.01的,已经是最新版了. #include #include double a;

在Cocos Studio中编辑的场景导出成json文件,如何还原成csd场景文件

问题描述 在Cocos Studio中编辑的场景导出成json文件,如何还原成csd场景文件 公司买了一份游戏源码,要我们自己修改UI,但是没有csd文件,界面都是json文件的格式,刚接触cocos2dx游戏的开发,只知道用Cocos Studio编辑游戏界面,而且Cocos Studio中新建的场景发布资源之后,可以生成对应的json文件,所以想试试能不能把json还原成csd文件,这样就可以通过Cocos Studio来进行可视化编辑了,有没有大神知道方法,还请不吝赐教,在此谢过. 解决方

c语言-C语言循环链表的头节点是定义成变量好,还是定义成结构体好?

问题描述 C语言循环链表的头节点是定义成变量好,还是定义成结构体好? C语言循环链表的头节点是定义成变量好,还是定义成结构体好? 解决方案 这不过是两个不同的方式而已,并没有什么本质上的不同. 解决方案二: 定义成什么,要看你节点中要保存的数据是什么.一般来说,是需要一个结构体的.因为除了一个有效数据外,你还需要链表的指针. 解决方案三: 都可以,不过建议定义为结构体,应为可以和后面的节点做同样的操作. 解决方案四: 个人推荐使用结构体,作为头结点,其存储的信息较多.单向链表为例,他有可能要存储

sql server-如何修改将对象类型1修改成不包含,0修改成包含

问题描述 如何修改将对象类型1修改成不包含,0修改成包含 SELECT A.iIden ,A.状态 ,A.创建人 ,B.对象类型 FROM dbo.升级包 A WITH(NOLOCK) JOIN dbo.升级包明细 B ON B.升级包明细ID=A.升级包明细ID 解决方案 SELECT A.iIden ,A.状态 ,A.创建人 ,case B.对象类型 when 1 then '不包含' else '包含' end 对象类型 FROM dbo.升级包 A WITH(NOLOCK) JOIN d

GB码转换成UTF

转换  很早以前找到一个把GB码转化为UTF-8的函数,配合一个GB到UNICODE的对照表(gb2312.txt),用于在GD中输出汉字.后来发现在欲输出的内容中含有西文字符时,会出现混乱.后来找到了修改后的代码,解决了问题.现将两个函数做一对比分析如下. 首先,这是一个UNICODE到UTF-8编码转换的函数,这一部分修改前后没有变化:function u2utf8($c){for($i=0;$i<count($c);$i++)$str="";if ($c < 0x80