Como escrever caracteres e no android strings.xml

430

Eu escrevi o seguinte no strings.xmlarquivo:

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

Eu recebi o seguinte erro:

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

Como escrever caracteres & no strings.xml?

Palo
fonte
6
No estúdio android, você pode simplesmente pressionar Alt+Entere ele será convertido para você.
Rumit Patel

Respostas:

1038

Codifique-o:

&amp;
Bob Fincheimer
fonte
1
Se estiver usando o CDATA, lembre-se de que alguns caracteres são reservados. © -> & cópia; Consulte este artigo. w3schools.com/html/html_entities.asp
toidiu
1
\ u0026 Melhor usar o Unicode, como sugerido por @Moss
Neo
159

Para caracteres especiais, normalmente uso a definição Unicode, para '&' por exemplo: \ u0026, se estiver correto. Aqui está uma boa página de referência: http://jrgraphix.net/research/unicode_blocks.php?block=0

Musgo
fonte
Este parece funcionar melhor. O $ amp; sai de getString () sem ser convertido. Então é uma dor.
Adam
1
Isso não funcionou para alguns símbolos, como \ u227A.
Luis A. Florit
para Ⓡ use o símbolo & # 174; e símbolo da marca registrada ™ & # 8482;
Deepak
55

Este é um dos meus problemas, minha solução é a seguinte: Use &gt;para <, &lt;para >, &amp;para &, "'"para ', &quotpara\"\"

Hai Rom
fonte
1
Não é possível editar isso porque a alteração é pequena, deixando um comentário. Deveria ler-se Use &gt; for >, &lt;for <
Jose_GD
13

Mesmo sua pergunta é respondida, ainda quero dizer mais entidades iguais a esta. Estes são html entities, então no android você os escreverá como:

Substitua abaixo por:

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

Deve ser assim:

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

Você pode encontrar todos os caracteres especiais em HTML nesta página http://www.degraeve.com/reference/specialcharacters.php Substitua o código onde deseja colocar esse caractere. :-)

AZ_
fonte
getString () não converte? Eu tive que usar \ u0022
granada
4

Também é possível colocar o conteúdo da sua string em um CDATA XML, como o Android Studio faz quando você Extract string resource

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

caulitomaz
fonte
3

Isso pode ser muito antigo. Mas para aqueles que procuram um código rápido.

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

Que lida com caracteres de escape, você pode adicionar caracteres e símbolos em suas respectivas matrizes.

-Felicidades

ralphgabb
fonte
2

Você pode escrever dessa maneira

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

Saída: você e eu

Hoque MD Zahidul
fonte
2

Para evitar o erro, use extrair string:

<string name="travels_tours_pvt_ltd"><![CDATA[Travels & Tours (Pvt) Ltd.]]></string>
AGTHAMAYS
fonte
Essa é a melhor solução!
Fabi