Как написать символ & в 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?

Palo
источник
6
В Android Studio вы можете просто нажать, Alt+Enterи он будет конвертировать для вас.
Румит Патель

Ответы:

1038

Кодируй это:

&amp;
Боб Финхеймер
источник
1
Если вы используете CDATA, помните, что некоторые символы зарезервированы. © -> & copy; Обратитесь к этой статье. w3schools.com/html/html_entities.asp
toidiu
1
\ u0026 Лучше использовать юникод, как предложено @Moss
Neo
159

Для специальных символов я обычно использую определение Unicode, например '&', например: \ u0026, если я прав. Вот хорошая справочная страница: http://jrgraphix.net/research/unicode_blocks.php?block=0

Мох
источник
Этот, кажется, работает лучше всего. $ Amp; выходит из getString () без преобразования. Так что это боль.
Адам
1
У меня это не сработало для некоторых символов, таких как \ u227A.
Луис А. Флорит
для символа use используйте & # 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;
Khemraj
источник
9

Это должно быть так:

<string name="game_settings_dragNDropMove_checkBox">Move by Drag&amp;Drop</string>
Фарук
источник
7

Вы можете найти все специальные символы HTML на этой странице http://www.degraeve.com/reference/specialcharacters.php Просто замените код, в который вы хотите поместить этот символ. :-)

AZ_
источник
getString () не конвертирует & quot; Я должен был использовать \ u0022
гранат
4

Также возможно поместить содержимое вашей строки в XML CDATA, как Android Studio делает для вас, когда вы Extract string resource

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

caulitomaz
источник
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;
 }

Это обрабатывает escape-символы, вы можете добавлять символы и символы в соответствующие им массивы.

-Cheers

ralphgabb
источник
2

Вы можете написать таким образом

<string name="you_me">You &#38; Me<string>

Вывод: ты и я

Hoque MD Захидул
источник
2

Чтобы избежать ошибки, используйте извлечь строку:

<string name="travels_tours_pvt_ltd"><![CDATA[Travels & Tours (Pvt) Ltd.]]></string>
AGTHAMAYS
источник
Это лучшее решение!
Фаби,