隨筆-348  評(píng)論-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);
                      
                  }
          具體原因我推測(cè)是因?yàn)閿?shù)據(jù)過來是ISO-8859-1,但.Net底層處理成了Gb2312了,所以需要通過兩種編碼轉(zhuǎn)換成Unicode才能正常顯示,聽說在Java中只要new String(s.getBytes("ISO-8859-1"),"gb2312");就OK了。

          ---------------------------------------------------------
          專注移動(dòng)開發(fā)

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

          評(píng)論:
          # re: C#(.Net) 解決Informix中文亂碼問題 2008-04-16 09:20 | Jiangnong
          太好了! 這個(gè)問題困繞我多年了!  回復(fù)  更多評(píng)論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2008-04-16 09:58 | TiGERTiAN
          @Jiangnong
          呵呵,我花了一個(gè)上午才找到解決辦法,主要.net開發(fā)informix的不多,而且這個(gè)問題在2003上面又不存在,Xp底下有,所以網(wǎng)上的解決辦法比較少  回復(fù)  更多評(píng)論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2008-04-16 10:29 | JiangNong
          我公司使用INFORMIX,在CSDK2.5以前版本沒有這個(gè)問題,但2.5不支持.NET,只能通過ODBC來完成. 有您的指點(diǎn)就好多了! :)  回復(fù)  更多評(píng)論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2008-04-16 10:51 | TiGERTiAN
          @JiangNong
          不客氣,我們使用了2.7,沒敢直接用.net的功能類庫,也是用了ODBC,所以就會(huì)出這個(gè)問題。我的email是tigertian@gmail.com 有空交流下。
            回復(fù)  更多評(píng)論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2008-04-21 16:21 | JiangNong
          上文提到"亂碼問題在2003上不存在,只有XP底下才有", 我怎么發(fā)現(xiàn)2003下也亂碼啊?
          我的EMAIL: jiangnong@zhej.picc.com.cn 歡迎交流.  回復(fù)  更多評(píng)論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2009-06-24 07:01 | bbs.minyifei.cn
          技術(shù)論壇,站長學(xué)習(xí)論壇:http://bbs.minyifei.cn  回復(fù)  更多評(píng)論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2009-12-18 16:36 | zx
          我的也是在用Sql語句查詢出來的時(shí)候,就顯示亂碼。使用了以上提供的方法,也沒有解決問題哦。對(duì)方服務(wù)器的環(huán)境是繁體的。  回復(fù)  更多評(píng)論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2009-12-18 22:48 | TiGERTiAN
          @zx
          Encoding srcEncode = Encoding.GetEncoding("gb2312");
          這行代碼你根據(jù)繁體中文的編碼修改了嗎?  回復(fù)  更多評(píng)論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2012-02-22 18:03 | 有難度,才夠味!
          這個(gè)可以解決顯示亂碼問題!那net 寫入informix數(shù)據(jù)庫數(shù)據(jù)呢?我寫進(jìn)去就是亂碼寫進(jìn)去漢字就是問號(hào)@JiangNong
            回復(fù)  更多評(píng)論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2012-02-24 18:47 | 有難度才夠味
          @TiGERTiAN
          這個(gè)可以解決顯示亂碼問題!那net 寫入informix數(shù)據(jù)庫數(shù)據(jù)呢?我寫進(jìn)去就是亂碼寫進(jìn)去漢字就是問號(hào)  回復(fù)  更多評(píng)論
            
          # re: C#(.Net) 解決Informix中文亂碼問題 2012-07-06 21:32 | ljz
          CSDK 3.7 也有此問題,用樓主的方法確實(shí)可以。確實(shí)需要gb2312 過渡一下轉(zhuǎn)換。謝謝樓主。  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 翼城县| 安岳县| 阿鲁科尔沁旗| 德昌县| 乳山市| 孝感市| 金坛市| 丽江市| 曲阳县| 礼泉县| 高陵县| 蒙自县| 岳池县| 探索| 三河市| 崇文区| 棋牌| 临沧市| 桐柏县| 龙南县| 剑阁县| 神农架林区| 琼海市| 大余县| 垦利县| 新乐市| 马尔康县| 南昌市| 台北市| 延边| 卫辉市| 车险| 莱芜市| 谢通门县| 泰宁县| 临澧县| 宜宾市| 永靖县| 河间市| 四子王旗| 安乡县|