我在使用eclipse的程序中输出文件有问题。我将我的eclipse设置为UTF-8并使用
System.getProperty("file.encoding")
我得到UTF-8.i通过eclipse run-option运行我的prog并且输出(文本文件)以UTF-8编码。但是当我将源代码压缩成jar文件时,输出文件显示错误在某些字母表中,例如Ã.what在使用eclipse和frm jar文件中的prog时使用此差异?我是否必须在源代码中指定要在utf-8中编码的输出?请帮助。
来自@dacwe的帮助确实产生了所需的输出。但是我可以知道如何在命令行外运行我的可执行文件.jar文件?-Dfile.encoding = UTF-8 怎么样?@dacwe:我尝试将源代码更改为
BufferedWriter bout = new java.io.BufferedWriter(new java.io.OutputStreamWriter(
new java.io.FileOutputStream(filename), "UTF-8"));
但是输出仍然没有正确编码。我想念的是什么?
答案 0 :(得分:13)
在@Dave G的回答中进行了一些重要的讨论后!
使用java -Dfile.encoding=UTF-8 -jar your-jar-file.jar
有效。
以@Dave G建议更新您的代码(和您的编辑)应该有效。
close()
致电bout
? (例如,您的文件可能未更新)以下是一个可以帮助您的完整示例:
public static void main(String... args) throws Exception {
PrintWriter out = new PrintWriter(new File("hello.txt"), "UTF-8");
out.print("written in utf-8");
out.close();
}
答案 1 :(得分:1)
从JAR文件运行时,是否通过-Dfile.encoding设置file.encoding属性?如果没有,你可以
a)使用该编码显式打开流。为此,您必须创建一个OutputStream,然后将其包装在OutputStreamWriter中,明确指示字符编码。
<击> 或
b)使用System.setProperty(“file.endcoding”)将属性设置为main方法中的第一个属性;
击>
注意 @dacwe指出我忘记的事情......纠正了我的回答。