聚合 管理  

          Blog Stats

          News

          我使用新博客啦:
          http://www.linjunhai.com/
          大家到我的新博客上看看吧!

          隨筆分類(28)

          文章分類(4)

          隨筆檔案(53)

          文章檔案(4)

          相冊

          相關鏈接


          林俊海的博客

          超級大菜鳥,每天要自強!

          之前寫過一個方法可以解決從外部讀入文本時中文不會亂碼,可是從程序中的字符串要寫回文本文件時又出現了中文字符亂碼,原因是JAVA默認使用Unicode編碼的字符,而我們使用的windows系統文本文件使用的是GBK編碼,要解決這個問題,就得從編碼上入手。下面這個方法就可以將字符串以GBK編碼寫入文本文件,這樣就可以解決寫入中文字符亂碼的問題了。

          /**
          * @(#)WriteText.java  17:58 10/09/06
          * @versoin 0.01
          * @author 林志斌(alvin) 廣東 普寧 里湖
          * Copyright ? 1996-2006 zmzx.icpcn.com All Rights Reserved
          * Use is subject to license terms.
          */

          package alvin.alvinio;

          import java.io.*;

          public class WriteText {

           public static void writeText(String path, String text) {
            try {
              FileOutputStream o = new FileOutputStream(path);
              o.write(text.getBytes("GBK"));
              o.close();
            } catch(Exception e) {}
           }
           
           //測試函數
           public static void main(String[] args) {
            //將指定的文本內容以 GBK 編碼寫入磁盤的指定路徑。
            String content = "你好!林志斌";
            WriteText.writeText("C:/hello.txt", content);
           }
          }

          posted on 2006-11-05 18:22 林俊海 閱讀(9881) 評論(5)  編輯  收藏 所屬分類: JAVA天地

          評論

          # re: 解決 JAVA 寫入文本文件時中文亂碼 2008-07-02 11:06 fangalone
          test ok,3qs  回復  更多評論
            

          # re: 解決 JAVA 寫入文本文件時中文亂碼[未登錄] 2008-10-27 09:51 哈哈
          你這個好像不行吧
          寫到C:/hello.txt 僅僅是一個內存存儲的物理地址。而不是想要的“你好!林志斌”  回復  更多評論
            

          # re: 解決 JAVA 寫入文本文件時中文亂碼[未登錄] 2008-10-27 10:12 哈哈
          可以
          謝謝!!!  回復  更多評論
            

          # re: 解決 JAVA 寫入文本文件時中文亂碼 2009-12-23 10:13 為各
          碰巧而已。你程序中的中文字串也是GBK的。你用UltraEdit這樣的編輯器編輯一段unicode的java源程序文本再來試。
          好好看看getBytes("CharsetID")的說明。
            回復  更多評論
            

          # re: 解決 JAVA 寫入文本文件時中文亂碼 2009-12-23 10:24 林志斌
          @為各
          難道你不知道 ***.class 字節碼文件中的都是 unicode 保存的了

          難道你不知道 對于非平臺默認編碼的 ***.java 源文件,編譯時,需要指明 -encoding 參數

          你有沒有試過反編譯

          你怎么知道 gbk 的 java 文件,編譯后會在 ***.class 中保留 gbk 字節  回復  更多評論
            

          主站蜘蛛池模板: 昌乐县| 通许县| 太白县| 潞城市| 丁青县| 张家界市| 乌兰浩特市| 湖口县| 桐柏县| 榆林市| 吉林市| 定远县| 博兴县| 应城市| 修武县| 林周县| 西乡县| 绿春县| 牟定县| 溆浦县| 兴山县| 宿迁市| 嘉善县| 塘沽区| 民丰县| 资中县| 永州市| 龙江县| 吴忠市| 茶陵县| 宁晋县| 仪陇县| 井陉县| 永春县| 临夏县| 常山县| 吉安县| 上林县| 六枝特区| 深水埗区| 常州市|