在Android中转义多个“%”字符

时间:2012-02-21 22:36:02

标签: android xml escaping arrays

在< string-array name =“versions”>我有一个条目的野兽(煮沸到合理的最小值来重现效果):

<item>100% foo 40%bar</item>

产生这些错误:

Multiple annotations found at this line:
- error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
- error: Found tag </item> where </string-array> is expected

添加formatted =“false”不会改变任何事情。

<item>100&#37; foo 40&#37;bar</item>

会产生相同的错误消息。 WTH?

<item>100% foo 40bar</item>
<item>100 foo 40%bar</item>
<item>100% foo 40%</item>

一切正常。 用\%转义它只是被忽略导致相同的错误。 %%不会导致错误但我得到%%。

3 个答案:

答案 0 :(得分:23)

将每个编码为xml中的unicode字符对我有用:

<string name="test">100\u0025 foo 40\u0025bar</string>

答案 1 :(得分:23)

%是XML中的保留字符,如<>等。 对字符串资源中使用的每个%%使用%

答案 2 :(得分:1)

使用CDATA可能有效..

<item><![CDATA[100% foo 40%]]></item>