我们已修改应用程序以支持非拉丁字符(中文和泰文),但我们在写入 CSV 时遇到了一些问题,并使用以下方法解决。
String line = "שלום, hello, привет";
OutputStream os = new FileOutputStream("c:/temp/j.csv");
os.write(239);
os.write(187);
os.write(191);
PrintWriter w = new PrintWriter(new OutputStreamWriter(os, "UTF-8"));
w.print(line);
w.flush();
w.close();
上面的一个有效,但我们面临着下面列出的其他一些问题。
我们使用下面的代码打开了一个 CSV 文件,它工作正常。
File file = new File(System.getProperty(TEMP_DIR_SYSPROP), filename); FileUtils.writeByteArrayToFile(file, bytes); Desktop.getDesktop().open(file);
但是当它用 UTF-8 编写时,我们面临着下面的 excel 问题。
NonLatin.csv 被锁定以供其他用户编辑。打开“只读”或单击“通知”以在文档不再使用时打开并接收通知。或取消。
- csv 中的少数条目出现双引号,在应用过滤器时显示为不同的内容。
请建议上述方法(UTF-8)是否有任何限制,或者是否有任何解决方法来处理这个问题。