给定特定区域设置选择有用的代码页

时间:2015-03-18 16:17:22

标签: java character-encoding

给定Java中的Locale(例如Locale.FRANCE)如何选择一个合理的代码页来配合它进行单字节编码?我可以从语言环境中获取语言(例如" fr")但是将其转换为代码页(" ISO-8859-1")似乎很棘手。据我所知,映射不一定是一对一的,所以在这一点上,我只是试图猜测一些默认选项。

public static Charset guessSinglebyteCharsetFromLocale(Locale loc) {
    // ...
}

此处的用例是导出CSV文件以在Excel中使用。除非用户明确地通过Data->导入文本向导,否则Excel似乎无法理解Unicode,并且要求他们能够尽可能简单地打开这些文件"。在我的系统中,我知道当前用户的Locale,所以我想自动猜测一个最不会破坏数据的代码页。

1 个答案:

答案 0 :(得分:0)

据我所知,Java中没有一对一的java Chaleset转换。您需要构建一个应用程序可能遇到的可能区域设置的表。

要使Excel识别转换后的单字节文本,需要使用“控制面板”中的“区域/语言”设置将计算机设置为“非unicode”应用程序的预期区域设置。这也强加了另一个要求,即一个csv文件中只能存在一个语言环境。