Java 将应用程序部署到汉语国家/地区

Java 将应用程序部署到汉语国家/地区,java,internationalization,Java,Internationalization,最近,我尝试将一个应用程序国际化到汉语国家 我知道汉字的编码方法有很多种:国标、Big5、Unicode、HZ 每当用户输入一些文本时,我的Java应用程序都需要知道用户正在使用哪种输入编码方法,以便我的Java应用程序将输入转换为可处理的数据 我觉得,基于他们的操作系统,对他们的输入编码方法进行假设是不可靠的。这是因为当有人使用带有中国语言环境的操作系统时,JVM将默认使用国标编码。但是,用户可以使用Big5输入工具输入Big5编码字符 我想知道,为了检测用户输入的编码类型,大家都使用的可靠方

最近,我尝试将一个应用程序国际化到汉语国家

我知道汉字的编码方法有很多种:国标、Big5、Unicode、HZ

每当用户输入一些文本时,我的Java应用程序都需要知道用户正在使用哪种输入编码方法,以便我的Java应用程序将输入转换为可处理的数据

我觉得,基于他们的操作系统,对他们的输入编码方法进行假设是不可靠的。这是因为当有人使用带有中国语言环境的操作系统时,JVM将默认使用国标编码。但是,用户可以使用Big5输入工具输入Big5编码字符


我想知道,为了检测用户输入的编码类型,大家都使用的可靠方法是什么?

对于实际用户输入,您永远不必检测它。它是由环境定义的

在Windows上,对于UNICODE应用程序,API将提供UTF-16。对于MBCS应用程序,它将提供当前的代码页,并且有一个API来告诉您这是什么

在Linux上,区域设置决定输入的编码,并将其传递给API


既然你说你在Java,你真的不需要在意。所有Java UI程序将提供
char
String
值,并且这些值始终是Unicode格式的。

当JVM在中国本地计算机上运行时,默认情况下需要国标编码。但用户可以提供Big5编码的输入。我的Java应用程序如何知道这是Big5输入而不是国标输入?因为file.encoding设置为Big5。用户不能“在Big5中提供输入”。用户点击按键。这些键由输入法解释。IME必须将Unicode传输到Java。