无法转义strings.xml中的特殊字符

时间:2013-07-24 23:52:21

标签: android eclipse eclipse-plugin android-xml android-resources

我想把字符'<' '>'在字符串资源中。

如果我在字符串中使用HTML编码:

<> 

它适用于第一个版本。 但是,在项目的另一个构建之后,某些内容会自动将其转换为:

<>

所以我不能使用以前的编码...

试图把“<”甚至“\<”在字符串中将生成XML错误。

尝试使用CDATA将具有与上述相同的行为。

如何设置'<'或'>'这个垃圾的角色?

更新

我添加了“eclipse”标签,因为经过一些讨论后,它似乎是一个日食问题 - 有些东西会自动编辑我的XML文件。 更新的问题是 - 为什么eclipse有时会弄乱我的strings.xml文件并尝试自己编码特殊字符?

2 个答案:

答案 0 :(得分:1)

这应该有效  <string name="angle_bracket">
<![CDATA[
<
]]>
</string>

如果不是,那么问题在于您项目中的其他地方。 (你可以通过在一个新的android项目中尝试它来确定)

答案 1 :(得分:0)

我目前的解决方法是在我的Java类中使用硬编码字符串。

String s = "<M>";
mTextView.setText(s);

另一个明显的给定答案(使用CDATA)在理论上是正确的,所以我会给它+1,但它在几个构建周期后无法在Eclipse环境中工作,因为Eclipse将CDATA部分转换为编码字符串(和然后我的字符串在我的应用程序中显示“CDATA ...”。

由于我没有找到更清洁的解决方案,这就是答案。