写入带重音字符的文件

问题描述 投票:2回答:3

我在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>
java file encoding bufferedwriter
3个回答
1
投票

OutputStreamWriter一起使用FileOutputStream,因此您可以显式指定字符集。

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

1
投票

我相信您需要指定一种编码,但是FileWriter并没有提供任何设置方式,尽管还有其他选项,例如:

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

0
投票

我使用参数8859_1解决了此问题,您可以在此处了解更多信息http://www.cafeconleche.org/books/xmljava/chapters/ch03s03.html

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(baos, "8859_1"));
© www.soinside.com 2019 - 2024. All rights reserved.