在属性文件中使用\ u ....和html实体?

时间:2011-01-10 16:50:38

标签: java properties character-encoding escaping

我绊倒了一些xxx_fr.properties,xxx_en.properties等文件,我有点惊讶它们包含html实体和\uxxxx转义。

我猜HTML实体很好,只要这些资源提供给等待HTML的东西,但\uxxxx转义呢?

Java是否指定{。1}}转义在.properties文件中没问题?

2 个答案:

答案 0 :(得分:4)

是的 - 请参阅load(Reader) &,其中说明了

  

键和元素中的字符可以是   以转义序列表示   类似于用于角色的那些   和字符串文字。

然后澄清

  

Unicode转义序列中只允许使用一个'u'字符。

因此,肯定支持包含单个“u”字符的Unicode转义序列。

请注意,在使用HTML实体加载时没有什么特别之处 - 例如,字符串\u0061只能在Java中看作包含5个字符的字符串。正如您所指出的,如果以后将其输出到其他组件,可能会以特殊方式解释。

另一方面,转义序列{{1}}在Java中将被视为单字符字符串'a',并且与包含该字符的文件无法区分。

答案 1 :(得分:3)

\ u type escaping是表示Unicode字符的标准Java方式。您可以在Java Internationalization FAQ中阅读它。使用“如何在属性文件中指定非ASCII字符串?”问题是你最感兴趣的一个:

http://java.sun.com/javase/technologies/core/basic/intl/faq.jsp#properties-escape

这不仅仅与属性相关;您也可以在典型的Java代码中使用它们。请参阅文本表示块:

http://java.sun.com/javase/technologies/core/basic/intl/faq.jsp#core-textrep