从jar文件生成UTF-8文件

时间:2010-11-25 20:07:02

标签: java file utf-8 character-encoding jar

我想使用以下代码从jar文件创建UTF-8文件:

public class UTF8 {
 public static void main(String[] args) throws Exception {
  BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(
    "utf8.txt"), "UTF8"));
  out.write("Look at this BASTÖÖÜÜÄÄ!");
 }
}

这段代码使用eclipse非常有效。但是,如果我将它打包到一个jar文件,它使用平台依赖文件编码(例如在Windows上为Cp1252)。我该怎么办呢?

5 个答案:

答案 0 :(得分:4)

在Launch4j的JRE选项卡上的JVM选项字段中(加载配置文件后),输入以下内容:

-Dfile.encoding=UTF8

或者,可以在应用程序的ini文件中指定相同的内容 - 请参阅launch4j文档:

http://launch4j.sourceforge.net/docs.html#Additional_jvm_options

答案 1 :(得分:2)

  1. "UTF8"应为"UTF-8"

  2. 此外OutputStreamReader(outputStream, encosingString)会引发您应该抓住的UnsupportedEncodingException

  3. 重大错误:永远不会捕获(或传递给主要)通用Exception

    public static void main(String[] args) throws Exception {}
    

    这使您无法看到真正的异常是什么以及发生了什么。

答案 2 :(得分:1)

调试编码问题时的经验法则:如果在字符串文字中有非us-ascii字母,请尝试用Unicode转义符替换它们(即BAST\u00d6\u00d6\u00dc\u00dc\u00c4\u00c4)。如果问题消失,则源/编译器编码不匹配。

例如,如果您的源编码是Windows-1252而编译器编码是UTF-8,则可能会出现您描述的行为。

答案 3 :(得分:0)

请尝试"UTF-8"

答案 4 :(得分:0)

我遇到了同样的问题..我解决了它 java -Dfile.encoding = UTF8 -jar CAP.jar(其中CAP是JAR文件的名称)

我发了一个批处理文件。打开文本文件,写上面的行并将其保存为.bat,它应该可以工作