我正在尝试通过java .properties文件向Web应用添加一些文本。我希望文本中包含一个短划线。如果我添加字符实体,那么:
myProp=Foo – Bar
或
myProp=Foo – Bar
我在输出中得到了代码。如果我将文字字符添加到属性文件(并保存为UTF-8):
mProp=Foo – Bar
我在输出中得到了文字字符。如何将字符实体添加到输出??
答案 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最终分别为&
或–
。如何避免转义取决于您用于显示它的视图技术。如果它是例如JSP / JSTL –
,那么您应该设置<c:out>
属性。