代码之家  ›  专栏  ›  技术社区  ›  Michael Borgwardt

导出到CSV时使用什么编码?

  •  1
  • Michael Borgwardt  · 技术社区  · 16 年前

    我正在开发一个java应用程序,可以将数据导出到CSV文件,供最终用户在Excel中打开。我们刚刚注意到导出函数使用Java的平台默认编码。这会导致变音字符丢失,并导致构建服务器上的单元测试失败(该服务器配置为将US-ASCII作为其平台默认编码,以准确捕捉此类潜在问题)。

    问题是:使用哪种编码最好?Excel如何确定使用什么编码?它是否使用了与Java平台默认值相匹配的特定于平台的东西?

    4 回复  |  直到 16 年前
        1
  •  1
  •   Yishai    16 年前

    然而,既然你写的是你控制生产部署,为什么你对硬编码Cp1252犹豫不决?如果这是应用程序的目标编码,那么这似乎是一个非常合理的解决方案。

        2
  •  0
  •   Alexey Sviridov    16 年前

    您可以从系统属性中获取系统区域设置,并使用该编码创建输出文件。如果您的文件仅在excel中打开,您是否需要查看Apache POI?

        3
  •  0
  •   Glen    16 年前

    认为Excel与UTF-16配合得很好。用UTF-16导出有什么问题。至少这样,非ascii字符将被保留,而不是被丢弃。

    编辑,好吧,“好”可能会夸大excel如何与UTF-16一起工作,但似乎UTF-16LE比UTF-8更好

        4
  •  0
  •   user2651478    12 年前
    推荐文章