Як записати символи та в android strings.xml


430

Я записав у strings.xmlфайл наступне :

<string name="game_settings_dragNDropMove_checkBox">Move by Drag&Drop</string>

Я отримав таку помилку:

The reference to entity "Drop" must end with the ';' delimiter.

Як я можу записати символи та в strings.xml?


6
В андроїд-студії ви можете просто натиснути, Alt+Enterі це перетворить на вас.
Rumit Patel

Відповіді:



159

Для спеціального символу я зазвичай використовую визначення Unicode, наприклад, для '&': якщо я прав. Ось приємна довідкова сторінка: http://jrgraphix.net/research/unicode_blocks.php?block=0


Цей, здається, працює найкраще. $ Підсилювач; виходить із getString () без перетворення. Так що це біль.
Адам

1
Це не спрацювало для деяких символів, як-от \ u227A.
Луїс А. Флорит

для використання символів & & # 174; символ торговельної марки ™ & # 8482;
Діпак

55

Це мої проблеми, моє рішення таке: Використовуйте &gt;для <, &lt;для >, &amp;для &, "'"для ', &quotдля\"\"


1
Неможливо редагувати це, оскільки зміна невелика, натомість залишаючи коментар. Він повинен читати Use &gt; for >, &lt;for <
Jose_GD

13

Навіть на ваше запитання дано відповідь, я все ж хочу сказати більше таких же організацій, як цей. Це такі html entities, тому в android ви їх будете писати так:

Замініть нижче на:

& with &amp;
> with &gt;
< with &lt;
" with &quot;, &ldquo; or &rdquo;
' with &apos;, &lsquo; or &rsquo;
} with &#125;

9

Він повинен бути таким:

<string name="game_settings_dragNDropMove_checkBox">Move by Drag&amp;Drop</string>


4

Також можливо розмістити вміст рядка в XML CDATA, як це робить Android Studio для вас Extract string resource

<string name="game_settings_dragNDropMove_checkBox"><![CDATA[Move by Drag&Drop]]></string>


3

Це може бути дуже старим. Але для тих, хто шукає швидкий код.

 public String handleEscapeCharacter( String str ) {
    String[] escapeCharacters = { "&gt;", "&lt;", "&amp;", "&quot;", "&apos;" };
    String[] onReadableCharacter = {">", "<", "&", "\"\"", "'"};
    for (int i = 0; i < escapeCharacters.length; i++) {
        str = str.replace(escapeCharacters[i], onReadableCharacter[i]);
    } return str;
 }

Щоб обробляти символи втечі, ви можете додати символи та символи до відповідних масивів.

-Чери



2

Щоб уникнути помилки, використовуйте витягнутий рядок:

<string name="travels_tours_pvt_ltd"><![CDATA[Travels & Tours (Pvt) Ltd.]]></string>

Це найкраще рішення!
Фабі

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.