繁体   English   中英

使用Java在CSV中写入非拉丁字符

[英]Write Non Latin Characters in CSV using Java

我们已经修改了该应用程序以支持非拉丁字符(中文和泰文),但是我们在编写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();

上面的一个可行,但是我们面临下面列出的其他一些问题。

  1. 我们使用下面的代码打开了一个CSV文件,它工作正常。

     File file = new File(System.getProperty(TEMP_DIR_SYSPROP), filename); FileUtils.writeByteArrayToFile(file, bytes); Desktop.getDesktop().open(file); 

但是当用UTF-8编写时,我们将面临excel以下问题。

NonLatin.csv已被锁定以供其他用户编辑。 当文档不再使用时,打开“只读”或单击“通知”以打开并接收通知。 或取消。

  1. 在csv中,很少有条目使用双引号,当应用过滤器时,其显示为不同的内容。

请建议上述方法(UTF-8)是否有任何限制,或者是否有任何解决方法。

由于您正在处理CSV,因此我将研究Excel如何读取文件。 借助Libre Office,我尝试导入CSV文件后就可以使用它,因此请在Excel中查找类似内容在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM