什么编码用于导出到CSV?

我正在开发一个java应用程序,将数据导出到CSV文件,打算由最终用户在Excel中打开。 我们只注意到导出函数使用Java的平台默认编码。 这会导致在构build服务器(它被configuration为具有US-ASCII作为其平台默认编码以准确捕捉此类潜在问题)上丢失元音字符并进行unit testing失败。

问题是:哪个编码最好用? Excel如何确定要使用的编码? 它是否使用了一些特定于平台的特性,可能与Java的平台默认值相匹配?

我目前正在倾向于硬编码Cp1252 – 它应该覆盖目标机器(部署环境实际上是指定的)并且将解决testing问题。 从search结果来看,Excel似乎并没有很好的处理UTF-8,所以没有办法,坚持使用平台的默认编码就需要一些解决方法。

我希望Excel能够和平台的默认编码一起工作,所以在一般情况下,坚持使用Excel似乎是最好的select。 检查平台默认是US-ASCII,而使用Cp1252代替(我猜testing是黑客攻击),这是压制编译器警告的概念等价物。 你知道这不适用于这种情况。

但是,既然你写了你控制生产部署,你为什么不惜硬编码Cp1252? 这似乎是一个完全合理的解决scheme,如果这是应用程序的目标编码。

您可能会从系统属性中获取系统语言环境,并使用该编码创build输出文件。 如果你的文件只能在Excel中打开,你可能需要看一下Apache POI吗?

认为Excel使用UTF-16很好。 用UTF-16导出有什么问题。 至less这样,非ASCII字符将被保留,而不是把它们扔掉。

编辑,好吧,'好'可能夸大了如何使用UTF-16,但似乎UTF-16LE比UTF-8更好地工作

UTF-8现在应该运行良好。 我刮了产品,然后将它们保存为CSV,使用WP所有导入,然后上传这个CSV,所有这些转换为XML,然后所有上传为WPpost。 大! 看看果酱唐古卡西欧