将首选编码指令嵌入到java程序中

时间:2011-07-19 08:06:52

标签: java encoding utf-8 executable-jar opencsv

我的问题从utf-8 as output继续。目前我正在使用:

PrintWriter bout = new java.io.PrintWriter(filename,"UTF-8");

它仍然无法正常工作。如@dacwe建议,我使用命令行

-Dfile.encoding=UTF-8

执行我的.jar文件并且它工作,创建了所需的utf-8文件输出(没有字母表问题)。所以我想这个解决方法就像eclipse.exe如何在eclipse目录中使用.ini文件。我将我的java编程包装到exe并让程序包含.ini文件?或者有人可以建议任何可行的想法吗?我的程序读取csv文件(来自opencsv)并输出为UTF-8中的文本。

2 个答案:

答案 0 :(得分:1)

使用shell脚本或批处理文件传递JVM参数。

示例shell脚本

#!/bin/sh
java -jar yourJar.jar -Dfile.encoding=UTF-8 "$@"

对于Windows批处理文件,请查看http://www.computerhope.com/batch.htm

答案 1 :(得分:1)

从这个问题:Parse CSV file containing a Unicode character using OpenCSV

你应该像这样使用你的CSVReader:

CSVReader reader=new CSVReader(
    new InputStreamReader(new FileInputStream("d:\\a.csv"), "UTF-8"), 
    ',', '\'', 1);

您无需设置任何环境属性,如file.encoding或其他任何内容。