2014-01-10 71 views
2

我使用這樣的事情在Java應用程序中寫入文件:寫入文件重音字符

BufferedWriter out = new BufferedWriter(new FileWriter(out1, true)); //where out1 is a File. 

當我從NetBeans中運行它的輸出是不錯的。當我嘗試從Windows命令行(預期的用途;使用jar)運行它時,重音字符變得瘋狂。我認爲這與字符編碼有關。

例如 (輸出文件是一個HTML文件);

我想這樣寫:

"<p>Inclinação(1):</p>" 

使用贏命令行,出現此:

<p>Inclina褯(1):</p> 
+0

你怎麼寫你的字符串到'BufferedWriter out'?您可能遇到編碼問題,或者您可能有控制檯字體問題。 –

+0

我正在使用out.write(「...」); – nervousDev

+0

我認爲這是一個重複的http://stackoverflow.com/questions/1001540/how-to-write-a-utf-8-file-with-java – Ted

回答

1

使用OutputStreamWriterFileOutputStream這樣你就可以明確地指定的字符集。

BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(out1, true), "UTF-8")); 
+0

我會試試看。順便說一句,什麼是更好的字符集使用重音字符和兼容的HTML 4.01過渡? – nervousDev

+0

幾乎總是堅持'utf-8',除非你有特定的理由不這樣做。我相信4中的默認值是'iso-8859-1'(HTML5是'utf-8'),所以你應該添加一個'meta'字符集聲明。 – Dmitri

+0

使用您的選項,我不能寫入下一行,而不使用.newLine();我的整個應用程序正在使用「\ n」和我編寫的字符串。 – nervousDev

1

我相信,你需要指定的編碼,可惜FileWriter不提供任何方法來設置它,但也有其他選擇,如:

BufferedWriter out = new BufferedWriter 
    (new OutputStreamWriter(new FileOutputStream(out1, true),"UTF-8"));