2009-12-15 27 views
0

最近,我尝试将应用程序国际化到讲中文的国家。向中国国家部署应用程序

我知道有各种各样的编码方法对中国特点:国标,BIG5,Unicode的,HZ

当用户输入一些文字,我的Java应用程序需要知道用户使用的是什么样的输入编码方法,以便我的Java应用程序将输入转换为可处理的数据。

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

我想知道什么是你所有使用的可靠的方法,以检测用户输入的编码类型?

回答

1

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

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

在Linux上,区域设置确定输入到API的输入编码。

既然你说你在Java中,那么你真的不需要关心。所有的Java UI程序都将提供charString值,并且这些值始终是不变的,采用Unicode。

+0

当JVM运行在中国本地计算机上时,默认情况下需要国标编码。但是用户可以提供Big5编码的输入。我的Java应用程序如何知道这是Big5输入而不是国标输入? – 2009-12-15 16:45:18

+0

由于file.encoding设置为Big5。 – bmargulies 2009-12-15 18:21:58

+0

用户不能'在Big5中提供输入'。用户击键。这些键由IME解释。 IME必须将Unicode提供给Java。 – bmargulies 2009-12-15 18:58:31