2014年8月11日 星期一

unicode string to UTF-8

這是個有點蠢的問題~不過居然一時忘了怎麼解~
卡了兩個小時真是豬頭T_T...

總之~java有個cmd可以把內容轉成unicode--> native2ascii
通常用於語系properties檔內~
然後那個檔裡面的中文字就開始變成\uXXXX的東西~


於是偶就只是想要看一下中文是什麼~然後就卡住了|||Orz...
因為檔案是為UTF-8的編碼~所以讀檔進來就變成一堆英文字~
也當然不能把他用UTF-16讀~因為降子一讀進來的字就錯了~

結果是~請出好用的apache commons lang來一行解決他!
StringEscapeUtils.unescapeJava(str);
就~這樣很簡單的就把檔給寫回原本的中文了T^T...

public void process(String input, String output) throws Exception {
        FileInputStream fis = new FileInputStream(input);
        FileOutputStream fos = new FileOutputStream(output);
       
       
        BufferedReader br = new BufferedReader(new InputStreamReader(fis, "utf-8"));
        while(br.ready())  {
            String row = br.readLine();
            String str = StringEscapeUtils.unescapeJava(row);
//System.out.println("str="+str);           
            str += "\n";
            fos.write(str.getBytes("UTF-8"));
        }
       
        fis.close();
        fos.close();
}


沒有留言: