如何在ResourceBundle的资源属性中使用UTF-8
我需要使用Java的ѭ0在我的资源属性中使用UTF-8。当我将文本直接输入属性文件时,它显示为mojibake。
我的应用在Google App Engine上运行。
谁能举个例子?我无法完成这项工作。
没有找到相关结果
已邀请:
15 个回复
疾桓
文件时,
在封面
下使用。这反过来默认使用
来加载这些属性文件。根据javadoc,它们默认为ISO-8859-1。
从输入字节流中读取属性列表(键和元素对)。输入流采用加载(Reader)中指定的简单的面向行的格式,并假设使用ISO 8859-1字符编码;即每个字节是一个Latin1字符。不是Latin1中的字符,以及某些特殊字符,使用“Java™语言规范”第3.3节中定义的Unicode转义符在键和元素中表示。 因此,您需要将它们保存为ISO-8859-1。如果您有任何超出ISO-8859-1范围的字符,并且您不能使用
离开顶部并因此被迫将文件保存为UTF-8,那么您需要使用native2ascii工具进行转换UTF-8保存的属性文件到ISO-8859-1保存的属性文件,其中所有未覆盖的字符都转换为
格式。下面的示例将UTF-8编码的属性文件
转换为有效的ISO-8859-1编码属性文件
。 native2ascii -encoding UTF-8 text_utf8.properties text.properties 使用Eclipse等理智的IDE时,在基于Java的项目中创建
文件并使用Eclipse自己的编辑器时,这已经自动完成。 Eclipse将透明地将字符转换为ISO-8859-1范围以外的
格式。另请参见下面的屏幕截图(请注意底部的“属性”和“源”选项卡,单击以查看大图): 或者,您也可以创建一个自定义
实现,其中您使用
明确地将属性文件读取为UTF-8,这样您就可以将它们保存为UTF-8,而无需使用
。这是一个启动示例:
这可以使用如下:
也可以看看: Unicode - 如何使角色正确?
旦彤
我解决了日语显示问题:
田损比报
然后将此Reader应用于加载方法:
BTW:从.properties文件中获取流:
希望这可以帮到你 !
羔磺
替秀宝
瞧叮
抢垢洛韧
搁手
赐黄
翱抹村
要将属性文件写为UTF-8:
痴浪墨
我特别紧张,因为这可能会降低我的应用程序的性能...但是,在实现之后,它看起来好像我的应用程序现在更快..我认为这是因为,我现在直接访问属性而不是让JSF解析它访问属性...我特意在这个调用中传递布尔参数,因为我知道一些属性不会被翻译,不需要是utf8格式... 现在我已经以UTF8格式保存了我的属性文件,并且它正常工作,因为我的应用程序中的每个用户都有一个参考区域设置首选项。
膏焦凑
靛取糕奖穿
街茬
使用它的方法与常规的ResourceBundle用法非常相似:
或者您可以使用默认使用UTF-8的备用构造函数:
寒健
等于
)