Escape несколько "%" символов в Android

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

все будет работать нормально. Экранирование с помощью\%просто игнорируется, что приводит к той же ошибке. %% не приводит к ошибке, но я получаю %%.

Ответ 1

Кодирование каждого в качестве символа Юникода в xml работает для меня:

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

Ответ 2

% - зарезервированный символ в XML, например <, > и т.д. Используйте %% для каждого %, который вы используете в ресурсе строки.

Ответ 3

Использование CDATA может работать.

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