转义多个 “%” Android 中的角色

发布于 2025-01-07 23:54:36 字数 776 浏览 0 评论 0原文

中我有一个野兽般的条目(归结为合理的最小值以重现效果):

<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>

导致相同的错误消息。啥?

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

一切都会很好。 使用 \% 转义它会被忽略,从而导致相同的错误。 %% 不会导致错误,但我得到 %%。

In <string-array name="versions"> I have this beast of an entry (boiled down to a reasonable minimum to reproduce the effect):

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

which produces these errors:

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

Adding formatted="false" doesn't change a thing.

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

results in the same error messages. WTH?

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

would all work fine.
Escaping it with \% is just ignored resulting in the same error. %% doesn't result in an error but I get %%.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

比忠 2025-01-14 23:54:36

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

The % is a reserved character in XML like <, >, etc.
Use %% for each % you are using in the string resource.

彻夜缠绵 2025-01-14 23:54:36

在 xml 中将每个字符编码为 un​​icode 字符对我来说很有效:

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

Encoding each as a unicode character in the xml works for me:

<string name="test">100\u0025 foo 40\u0025bar</string>
忘羡 2025-01-14 23:54:36

使用 CDATA 可能有效。

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

Using CDATA may work..

<item><![CDATA[100% foo 40%]]></item>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文