隨筆-348  評論-598  文章-0  trackbacks-0
                  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去轉(zhuǎn)換源字符串
                      byte[] dstBytes = Encoding.Convert(srcEncode, dstEncode, srcBytes);//但是,是從gb2312轉(zhuǎn)到unicode的
                      char[] dstChars = new char[dstEncode.GetCharCount(dstBytes, 0, dstBytes.Length)];
                      dstEncode.GetChars(dstBytes, 
          0, dstBytes.Length, dstChars, 0);
                      
          return new string(dstChars);
                      
                  }
          具體原因我推測是因?yàn)閿?shù)據(jù)過來是ISO-8859-1,但.Net底層處理成了Gb2312了,所以需要通過兩種編碼轉(zhuǎn)換成Unicode才能正常顯示,聽說在Java中只要new String(s.getBytes("ISO-8859-1"),"gb2312");就OK了。

          ---------------------------------------------------------
          專注移動開發(fā)

          Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
          posted on 2008-02-27 21:30 TiGERTiAN 閱讀(3583) 評論(11)  編輯  收藏 所屬分類: DotNetMapXtreme

          評論:
          # re: C#(.Net) 解決Informix中文亂碼問題 2008-04-16 09:20 | Jiangnong
          太好了! 這個(gè)問題困繞我多年了!  回復(fù)  更多評論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2008-04-16 09:58 | TiGERTiAN
          @Jiangnong
          呵呵,我花了一個(gè)上午才找到解決辦法,主要.net開發(fā)informix的不多,而且這個(gè)問題在2003上面又不存在,Xp底下有,所以網(wǎng)上的解決辦法比較少  回復(fù)  更多評論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2008-04-16 10:29 | JiangNong
          我公司使用INFORMIX,在CSDK2.5以前版本沒有這個(gè)問題,但2.5不支持.NET,只能通過ODBC來完成. 有您的指點(diǎn)就好多了! :)  回復(fù)  更多評論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2008-04-16 10:51 | TiGERTiAN
          @JiangNong
          不客氣,我們使用了2.7,沒敢直接用.net的功能類庫,也是用了ODBC,所以就會出這個(gè)問題。我的email是tigertian@gmail.com 有空交流下。
            回復(fù)  更多評論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2008-04-21 16:21 | JiangNong
          上文提到"亂碼問題在2003上不存在,只有XP底下才有", 我怎么發(fā)現(xiàn)2003下也亂碼啊?
          我的EMAIL: jiangnong@zhej.picc.com.cn 歡迎交流.  回復(fù)  更多評論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2009-06-24 07:01 | bbs.minyifei.cn
          技術(shù)論壇,站長學(xué)習(xí)論壇:http://bbs.minyifei.cn  回復(fù)  更多評論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2009-12-18 16:36 | zx
          我的也是在用Sql語句查詢出來的時(shí)候,就顯示亂碼。使用了以上提供的方法,也沒有解決問題哦。對方服務(wù)器的環(huán)境是繁體的。  回復(fù)  更多評論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2009-12-18 22:48 | TiGERTiAN
          @zx
          Encoding srcEncode = Encoding.GetEncoding("gb2312");
          這行代碼你根據(jù)繁體中文的編碼修改了嗎?  回復(fù)  更多評論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2012-02-22 18:03 | 有難度,才夠味!
          這個(gè)可以解決顯示亂碼問題!那net 寫入informix數(shù)據(jù)庫數(shù)據(jù)呢?我寫進(jìn)去就是亂碼寫進(jìn)去漢字就是問號@JiangNong
            回復(fù)  更多評論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2012-02-24 18:47 | 有難度才夠味
          @TiGERTiAN
          這個(gè)可以解決顯示亂碼問題!那net 寫入informix數(shù)據(jù)庫數(shù)據(jù)呢?我寫進(jìn)去就是亂碼寫進(jìn)去漢字就是問號  回復(fù)  更多評論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2012-07-06 21:32 | ljz
          CSDK 3.7 也有此問題,用樓主的方法確實(shí)可以。確實(shí)需要gb2312 過渡一下轉(zhuǎn)換。謝謝樓主。  回復(fù)  更多評論
            
          主站蜘蛛池模板: 舞钢市| 正安县| 邳州市| 新乡县| 新蔡县| 抚宁县| 治县。| 托里县| 龙门县| 三亚市| 观塘区| 泰和县| 淮滨县| 友谊县| 宜春市| 古田县| 汕尾市| 汤阴县| 嘉善县| 泉州市| 莒南县| 富锦市| 五大连池市| 大足县| 侯马市| 财经| 灵武市| 隆安县| 通城县| 鸡东县| 海淀区| 股票| 兰州市| 博爱县| 澄江县| 赣州市| 阳谷县| 海原县| 枣强县| 莲花县| 大英县|