我在Java应用程序中使用类似的东西来写文件:
BufferedWriter out = new BufferedWriter(new FileWriter(out1, true)); //where out1 is a File.
当我从netBeans运行它时,输出很好。当我尝试从Windows命令行(预期用途;使用jar)运行它时,带重音符号的字符会发疯。我认为这与chars编码有关。
例如(输出文件是HTML文件);
我想写这个:
"<p>Inclinação(1):</p>"
使用Win命令行,显示此:
<p>Inclina褯(1):</p>
与OutputStreamWriter
一起使用FileOutputStream
,因此您可以显式指定字符集。
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(out1, true), "UTF-8"));
我相信您需要指定一种编码,但是FileWriter
并没有提供任何设置方式,尽管还有其他选项,例如:
BufferedWriter out = new BufferedWriter
(new OutputStreamWriter(new FileOutputStream(out1, true),"UTF-8"));
我使用参数8859_1解决了此问题,您可以在此处了解更多信息http://www.cafeconleche.org/books/xmljava/chapters/ch03s03.html。
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(baos, "8859_1"));