欢迎您来到GIS动力

加入收藏 免费注册 用户登陆 帮助中心
首页 新闻动态 技术专栏 银杏树下 学习考研 软件下载 求职招聘 许愿瓶 节日祝福 用户中心 精彩推荐 资源搜索 地图
专栏导航: AO开发 | SO开发 | ArcGIS桌面 | 超图桌面 | 开发语言 | 数据库 | WebGIS | 银杏文学 | 研究生考题 | FreeMap FreeTalk
   您现在位于: 首页技术专栏开发语言 → 正文
C#解决Informix中文乱码问题
08-10-09 10:22:28 作者:TiGERTiAN 出处:http://www.cnblogs.com/tigertian
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;
        }

(本文已被浏览 次)
发布人:admin
推荐给好友:发送给好友
上篇新闻:
下篇新闻:
相关评论
发表我的评论
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  •   相关文章  
    无相关新闻

    关于我们友情链接 ┋ 与我在线 ┋ 管理 ┋ TOP
     
    网站当前版本:GisPower CMS V3.0
    『GIS 动力』- http://www.gispower.org/
    联系我们:webmaster#gispower.org
    Copyright (c) 2003-2007 GisPOwer.Org. All Rights Reserved.
     

                   滇ICP备05006901号