Java 西班牙语字符显示不正确?
我正在使用GWT。我实现了国际化以支持西班牙语。但西班牙字符不会被正确显示。例如:Teléfono巴士车显示为。 (见电话后的一些垃圾字符)。我正在使用IE浏览器Java 西班牙语字符显示不正确?,java,gwt,internationalization,gxt,Java,Gwt,Internationalization,Gxt,我正在使用GWT。我实现了国际化以支持西班牙语。但西班牙字符不会被正确显示。例如:Teléfono巴士车显示为。 (见电话后的一些垃圾字符)。我正在使用IE浏览器 我是否需要配置任何其他设置?谢谢 我怀疑这可能是因为您的编辑器没有使用UTF-8编码 如果您使用的是Eclipse,您可以通过转到Window>Preferences>General>Content-Types将其配置为使用UTF-8作为*.properties 只需确保将默认编码值更改为UTF-8,如下所示 任何文本编辑器都会有类
我是否需要配置任何其他设置?谢谢 我怀疑这可能是因为您的编辑器没有使用
UTF-8
编码
如果您使用的是Eclipse,您可以通过转到Window>Preferences>General>Content-Types
将其配置为使用UTF-8
作为*.properties
只需确保将默认编码
值更改为UTF-8
,如下所示
任何文本编辑器都会有类似的设置,包括
vi
,因为字符串来自属性文件,所以ResourceBundle可能是PropertyResourceBundle的一个实例,它创建java.util.properties的一个空实例,然后通过一个“load”方法。PropertyResourceBundle有两个构造函数,一个接受InputStream,另一个接受Reader。构造函数只调用相应的“load”方法
请注意,采用InputStream的“load”方法假定属性文件的字符编码为ISO 8859-1(拉丁语1)。可以通过两种方式解决此问题:
确保数据始终经过编码
UTF-8
,直到它显示在浏览器上。@adarshr,谢谢您的回复。我已经在我的主页的第行下方放置了字符串。字符串来自何处?您如何读取,等等?字符串来自属性文件(资源包)。更多代码将帮助我们找出错误所在。感谢您的回复。从属性文件读取值对我们来说很简单,我们不使用任何propertyresourcebundle。gwt本身为每个属性文件创建接口。我们只调用接口并从属性文件访问值。如果您无法控制esource bundle已实例化,简单的解决方案是在属性文件中使用Unicode转义。如果支持的语言只有英语和其他基于拉丁语的语言,如es、fr、de等,则Unicode转义会使文件无法被人读取。只对中文、韩文、阿拉伯文等使用Unicode转义。请给我一个示例考虑字符串TeleFuno BasCar?@ USE1016403:EUE的Unicode值是0x39(U+ 0039,在Unicode术语中)。将替换为\u0039
。您可以在unicode.org上找到其他值。不过,警告一句:正如adarshr指出的那样,大量unicode转义会严重妨碍属性文件的可读性。