在java属性文件中使用字符实体

时间:2010-09-13 19:37:10

标签: java properties character-encoding

我正在尝试通过java .properties文件向Web应用添加一些文本。我希望文本中包含一个短划线。如果我添加字符实体,那么:

myProp=Foo – Bar

myProp=Foo – Bar

我在输出中得到了代码。如果我将文字字符添加到属性文件(并保存为UTF-8):

mProp=Foo – Bar

我在输出中得到了文字字符。如何将字符实体添加到输出??

2 个答案:

答案 0 :(得分:1)

load(InputStream)类的Properties方法始终将文本文件解码为ISO-8859-1。它不“知道”编辑器在保存文件时使用的编码。

您可以使用正确的字符编码创建自己的Reader,然后使用load(Reader)方法。

或者,你可以坚持使用ISO-8859-1并使用Unicode转义符(\uXXXX转义其他字符集中的字符,例如“\ u8211”而不是“ - ”)。

答案 1 :(得分:0)

第一个是HTML实体,第二个是XML实体。因此,要将第一个显示为短划线,它应显示为未转义为HTML文件,并将第二个显示为短划线,它应显示为未转换为XML文件。此外,应使用适当的工具显示文件,在这种情况下,该工具可以是webbrowser。

您是否使用适当的工具将其显示在HTML / XML文件中?

要确定是否已转义或未转义,请在webbrowser中右键单击该页面,选择查看源,然后检查第一个&符号是否 被转义为{{1最终分别为&amp;&amp;ndash;。如何避免转义取决于您用于显示它的视图技术。如果它是例如JSP / JSTL &amp;#8211;,那么您应该设置<c:out>属性。