J2ME中文亂碼

          J2ME中文亂碼

          誰(shuí)在開(kāi)發(fā)過(guò)程中沒(méi)有遇到過(guò)中文亂碼,不管你是不是開(kāi)發(fā)J2ME的,舉手!我一直覺(jué)得這是一個(gè)很無(wú)語(yǔ)的問(wèn)題,不知道當(dāng)初那些整ISO-8859-1和ASCII的人有沒(méi)有遠(yuǎn)見(jiàn),暈了,多整8個(gè)bit要死啊,搞得現(xiàn)在這么麻煩。雖然我一直喜歡使用UTF-8來(lái)對(duì)我的所有代碼中出現(xiàn)的東西編碼,但是有的時(shí)候還是會(huì)遇到很多無(wú)語(yǔ)的問(wèn)題。因?yàn)楹芏嘞到y(tǒng)默認(rèn)是ASCII,有的是ISO-8859-1,還有的時(shí)候是咱自己的GBK,但是這些東西國(guó)際化的時(shí)候就麻煩了,倒過(guò)去倒過(guò)來(lái),浪費(fèi)生命。所以我建議使用UTF-8是一種非常不錯(cuò)的習(xí)慣。

          接下來(lái)是一些常用的,可以避免亂碼的方法:

          最簡(jiǎn)單的:

          1. new String(byte[] data,String str); //非常實(shí)用,String參數(shù)是你希望的編碼方式
          2. //e.g.
          3. String str = new String("中國(guó)".getBytes(),"UTF-8");
          4. //還行吧,呵呵

          但是有的時(shí)候,人家什么編碼你是不知道的啊,所以想這種的話當(dāng)你確定用什么編碼方式的時(shí)候就郁悶了,而且即使通過(guò)一種復(fù)雜的途徑確定了編碼方式也是不太可取的,因?yàn)槲覀冃枰紤]到可移植性。所以接下來(lái)會(huì)有一種更為通用的方法。Following…

          那就是byte[]了啊,如果byte[]都還不行…無(wú)言獨(dú)上西樓…月如鉤…

          1. String originalStr = "村里有個(gè)姑娘" ;
          2. String resultStr = null ;
          3. ByteArrayOutputStream baos ;
          4. DataOutputStream dos ;
          5. ByteArrayInputStream bais ;
          6. DataInputStream dis ;
          7. byte[] data ;
          8. //將任何字符串序列寫(xiě)入到輸出流中,通過(guò)輸出流將序列寫(xiě)入到ByteArrayOutputStream,然后獲得byte[]
          9. dos = new DataOutputStream(baos);
          10. dos.writeUTF(str);
          11. data = baos.toByteArray();
          12. //------------
          13. //將寫(xiě)入到流的字符串序列讀取回來(lái)
          14. bais = new ByteArrayInputStream(data);
          15. dis = new DataInputStream(bais);
          16. resultStr = dis.readUTF();
          17. System.out.println(resultStr); //在這里你可以得到村里那個(gè)姑娘

          在Data Input/Output Stream中提供了一系列的readXxx()/writeXxx方法,查看API是最明白不過(guò)的了。所以有事沒(méi)事看看API也是一個(gè)很不錯(cuò)的習(xí)慣,當(dāng)然在你學(xué)習(xí)時(shí)間里。可不敢在和你老婆散步的時(shí)候去看API,不然你會(huì)倒霉的。哈哈!
          由于這個(gè)方法避免了直接操作單個(gè)字符,而是以流的形式,都是二進(jìn)制的所以通用性應(yīng)該不會(huì)差到哪里去。所以呢,不只是中文字符可以用啦。包括日啊,韓文啊,阿拉伯啊,還有什么耶路撒冷啊,甚至腦殘一代使用的火星文都可以哦(如果不行的話那就是火星人的問(wèn)題)。哈哈~“趕緊試試吧。

          下面還有:

          1. 2009年05月28日 -- J2ME開(kāi)發(fā)之手機(jī)鍵值適配
          2. 2009年05月23日 -- J2ME Canvas
          3. 2009年05月10日 -- 使用NetBeans開(kāi)發(fā)J2ME
          4. 2009年05月8日 -- KXML2部分詳解(J2ME)

          posted on 2009-06-10 23:18 菲戈 閱讀(1040) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          留言簿

          文章檔案

          相冊(cè)

          搜索

          最新評(píng)論

          主站蜘蛛池模板: 新余市| 海南省| 龙岩市| 翁源县| 云浮市| 伊金霍洛旗| 乐东| 珠海市| 长武县| 杭锦旗| 松溪县| 滦平县| 和顺县| 沂水县| 宝山区| 沂源县| 东丰县| 南汇区| 喀喇沁旗| 井陉县| 凤翔县| 济源市| 仙游县| 治多县| 邵阳县| 凤城市| 蒙山县| 新民市| 富民县| 奈曼旗| 巩义市| 昌江| 静乐县| 湘潭县| 龙里县| 阿拉善右旗| 神农架林区| 渝北区| 旬阳县| 姚安县| 遂宁市|