Java 使用重音字符写入文件
我在java应用程序中使用类似的东西来写入文件:Java 使用重音字符写入文件,java,file,encoding,bufferedwriter,Java,File,Encoding,Bufferedwriter,我在java应用程序中使用类似的东西来写入文件: BufferedWriter out = new BufferedWriter(new FileWriter(out1, true)); //where out1 is a File. 当我从netBeans运行它时,输出良好。当我试图从windows命令行(预期用途;使用jar)运行它时,重音字符会变得疯狂。我认为这与字符编码有关 e、 g。 (输出文件为HTML文件) 我想写这封信: "<p>Inclinação(1):<
BufferedWriter out = new BufferedWriter(new FileWriter(out1, true)); //where out1 is a File.
当我从netBeans运行它时,输出良好。当我试图从windows命令行(预期用途;使用jar)运行它时,重音字符会变得疯狂。我认为这与字符编码有关
e、 g。
(输出文件为HTML文件)
我想写这封信:
"<p>Inclinação(1):</p>"
“斜面(1):”
使用Win命令行,将显示以下内容:
<p>Inclina褯(1):</p>
倾斜褯(1) :
将
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解决了这个问题,您可以在这里了解更多信息
如何将字符串写入缓冲写入器输出?你可能有一个编码问题,或者你可能有一个控制台字体问题;我想这是一个复制品,我会试一试。顺便说一句,与重音字符和HTML 4.01 Transitional兼容的更好的字符集是什么?除非您有特定的理由不这样做,否则几乎总是坚持使用
utf-8
。我确实认为4中的默认值是iso-8859-1
(HTML5是utf-8
),因此您应该添加meta
字符集声明;我的整个应用程序正在使用“\n”和我编写的字符串。不确定你的意思。。。您正在使用write
,因此:out.write(“foo\n”)代码>println()
,newLine()
,等等都是依赖于系统的(因此NetBeans和Windows shell之间存在差异),所以这可能不是您想要开始的。那么,使用该规范进行打印的最佳方法是什么?
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(baos, "8859_1"));