最近,我尝试将应用程序国际化到中文国家。
我意识到汉字的编码方法种类繁多:国标,Big5,Unicode,HZ
每当用户输入一些文本时,我的Java应用程序需要知道用户正在使用哪种输入编码方法,以便我的Java应用程序将输入转换为可处理的数据。
我觉得,根据他们的操作系统对输入编码方法进行假设是不可靠的。这是因为当有人使用具有中国语言环境的操作系统时,JVM将默认使用国标编码。但是,用户可以使用Big5输入工具来键入Big5编码字符。
我想知道你们所使用的可靠方法是什么,以便检测用户输入的编码类型?
答案 0 :(得分:1)
对于实际用户输入,您永远不必检测它。它由环境定义。
在Windows上,对于UNICODE应用程序,API将提供UTF-16。对于MBCS应用程序,它将提供当前代码页,并且有一个API可以告诉您它是什么。
在Linux上,语言环境决定了传递给API的输入的编码。
既然你说你是Java,那么真的不需要关心。所有Java UI程序都将提供char
或String
值,并且这些值始终是不可变的,用于Unicode。