在Java和CSV文件中设置UTF-8

我正在使用此代码通过OpenCSV将波斯语单词添加到csv文件中:

String[] entries="\u0645 \u062E\u062F\u0627".split("#");

try{

CSVWriter writer=new CSVWriter(new OutputStreamWriter(new FileOutputStream("C:\\test.csv"), "UTF-8"));

writer.writeNext(entries);

writer.close();

}

catch(IOException ioe){

ioe.printStackTrace();

}

当我在Excel中打开生成的csv文件时,它包含 。其他程序(例如notepad.exe)没有此问题,但是我所有的用户都在使用MS

Excel。

与更换OpenCSV SuperCSV不解决这个问题。

当我手动将波斯字符输入到csv文件中时,我没有任何问题。

回答:

不幸的是,CSV是一种非常特殊的格式,没有元数据,也没有要求灵活编码的实际标准。只要使用CSV,就不能可靠地使用ASCII以外的任何字符。

您的选择:

  • 写入XML(如果正确执行,它确实具有编码元数据),并让用户将XML导入Excel。
  • 使用Apache POI创建实际的Excel文档。

以上是 在Java和CSV文件中设置UTF-8 的全部内容, 来源链接: utcz.com/qa/404881.html

回到顶部