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

标签 java excel csv utf-8 non-latin

我们已修改应用程序以支持非拉丁字符(中文和泰文),但我们在写入 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)是否有任何限制,或者是否有任何解决方法来处理这个问题。

    最佳答案

    由于您正在处理 CSV,因此我将查看 Excel 是如何读取文件的。使用 Libre Office,只要我尝试导入 CSV 文件,它就可以使用,所以在 Excel 中寻找类似的东西
    enter image description here

    关于java - 使用 Java 在 CSV 中写入非拉丁字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51942385/

    相关文章:

    excel - 用于测试单元格是否在 Excel 中进行条件格式设置的 VBA 函数

    java - 线程 "main"java.lang.NoClassDefFoundError : com/ibm/mq/MQException 中的异常

    excel - 计数器帮助VBA

    java - Android Studio 模拟器不工作

    javascript - ajax下载的excel文件已损坏

    python - 在 python 中读取 csv 文件并将每个行项目作为脚本中的值进行迭代?

    python - 嵌套的 json 到 csv - 通用方法

    python - 输出某个特定列的具有特定初始字符串的行

    java - 在循环 block 中声明变量

    java - JUnit测试用例在eclipse中运行多次