2010-06-16 6 views
319

J'ai écrit ce qui suit dans le fichier strings.xml:Comment puis-je écrire le caractère et dans Android strings.xml

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

Je suis l'erreur suivante:

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

Comment puis-je écrire le caractère & dans le string.xml?

Répondre

798

Encode il:

&amp; 
+29

Pour obtenir les codes utilisent http://www.mikezilla.com/exp0012.html il convertit quoi que ce soit vous tapez, donc pas besoin de rechercher les valeurs – Entreco

+0

http://www.mikezilla.com/exp0012.html -> Lien brisé. –

+0

Si vous utilisez CDATA, sachez que certains caractères sont réservés. © -> © Référez-vous à cet article. http://www.w3schools.com/html/html_entities.asp – toidiu

140

Pour caractère spécial que j'utilise normalement la définition Unicode, pour le '&' par exemple: \ si je suis u0026 correcte. Voici une belle page de référence: http://jrgraphix.net/research/unicode_blocks.php?block=0

+12

+1 pour la table unicode – Necronet

+0

Celui-ci semble fonctionner le mieux. L'ampli $; sort de getString() sans être converti. Donc c'est une douleur. – Adam

+1

Cela n'a pas fonctionné pour moi pour certains symboles, comme \ u00a0A. –

2

Il est également possible mettre le contenu de votre chaîne dans un CDATA XML, comme Android Studio ne vous lorsque vous Extract string resource

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

2

Cela peut être très vieux. Mais pour ceux qui cherchent un code rapide.

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

Qui gère les caractères d'échappement, vous pouvez ajouter des caractères et des symboles sur leurs tableaux respectifs.

-Cheers

26

Ceci est un de mes questions, ma solution est la suivante: Utilisez &gt; pour <, pour &lt;>, &amp; pour &, "'" pour ', pour &quot \ "\"

4

Il devrait ressembler à ceci:

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

Pour éviter l'erreur, utilisez la chaîne d'extrait:

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

Vous pouvez écrire de cette façon

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

Sortie: Vous & moi

Questions connexes