打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#解决Informix中文乱码问题
C#解决Informix中文乱码问题 08-10-09 10:22:28 http://www.cnblogs.com/tigertian 
              
核心提示:publicstaticstringGetEncodingString(stringsrcString) { Encodinge8859Encode=Encoding.GetEncoding(&quo
public static string GetEncodingString(string srcString)
        {
            Encoding e8859Encode = Encoding.GetEncoding("iso-8859-1");
            Encoding srcEncode = Encoding.GetEncoding("gb2312");
            Encoding dstEncode = Encoding.Unicode;
            byte[] srcBytes = e8859Encode.GetBytes(srcString);//用iso-8859-1去转换源字符串
            byte[] dstBytes = Encoding.Convert(srcEncode, dstEncode, srcBytes);//但是,是从gb2312转到unicode的
            char[] dstChars = new char[dstEncode.GetCharCount(dstBytes, 0, dstBytes.Length)];
            dstEncode.GetChars(dstBytes, 0, dstBytes.Length, dstChars, 0);
            return new string(dstChars);
           
        }具体原因我推测是因为数据过来是ISO-8859-1,但.Net地层格处理成了Gb2312了,所以需要通过两种编码转换成Unicode才能正常显示,听说在Java中只要new String(s.getBytes("ISO-8859-1"),"gb2312");就OK了。
转换成ISO

        public static string GetISOEncodedString(string srcString)
        {
            if(bDBInfor) {
                Encoding e8859Encode = Encoding.GetEncoding("iso-8859-1");
                Encoding srcEncode = Encoding.Unicode;
                Encoding dstEncode = Encoding.GetEncoding("gb2312");
                byte[] srcBytes = srcEncode.GetBytes(srcString);//用Unicode去转换源字符串
                byte[] dstBytes = Encoding.Convert(srcEncode, dstEncode, srcBytes);//但是,是从gb2312转到unicode的
                char[] dstChars = new char[e8859Encode.GetCharCount(dstBytes, 0, dstBytes.Length)];
                e8859Encode.GetChars(dstBytes, 0, dstBytes.Length, dstChars, 0);
                return new string(dstChars);
            }
            return srcString;
        }
本篇文章来源于GIS动力站|www.gispower.org 原文链接:http://www.gispower.org/article/dev/2008/109/08109102228E52C31HA19IE98G31HK8.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
c#中GBK与UNICODE互转
谨慎使用Encoding.Default
C# 读写文本文件乱码解决方案
html向aspx页面传值汉字乱码问题
C# StreamReader和StreamWriter读取和写入汉字出现乱码的解决方法
URL中包含中文参数造成乱码的解决之道
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服