Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用重音字符写入文件_Java_File_Encoding_Bufferedwriter - Fatal编程技术网

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):<

我在java应用程序中使用类似的东西来写入文件:

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"));