Cómo escribir caracteres y en android strings.xml

430

Escribí lo siguiente en el strings.xmlarchivo:

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

Tuve el siguiente error:

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

¿Cómo puedo escribir caracteres y en strings.xml?

Palo
fuente
66
En Android Studio, simplemente puede presionar Alt+Entery se convertirá por usted.
Rumit Patel el

Respuestas:

1038

Codifícalo:

&amp;
Bob Fincheimer
fuente
1
Si usa CDATA, tenga en cuenta que algunos caracteres están reservados. © -> & copy; Consulte este artículo w3schools.com/html/html_entities.asp
toidiu
1
\ u0026 Es mejor usar Unicode como lo sugiere @Moss
Neo
159

Para caracteres especiales, normalmente uso la definición Unicode, para '&' por ejemplo: \ u0026 si estoy en lo correcto. Aquí hay una buena página de referencia: http://jrgraphix.net/research/unicode_blocks.php?block=0

Musgo
fuente
Este parece funcionar mejor. El $ amp; sale de getString () sin ser convertido. Entonces es un dolor.
Adam
1
Esto no funcionó para mí para algunos símbolos, como \ u227A.
Luis A. Florit
para Ⓡ usar el símbolo & # 174; y símbolo de marca registrada ™ & # 8482;
Deepak
55

Estos son mis problemas, mi solución es la siguiente: Usar &gt;para <, &lt;para >, &amp;para &, "'"para ', &quotpara\"\"

Hai Rom
fuente
1
No se puede editar esto porque el cambio es pequeño, dejando comentarios en su lugar. Debería leer Use &gt; for >, &lt;for <
Jose_GD
13

Incluso su pregunta es respondida, aún quiero decirle a más entidades iguales como esta. Estos son html entities, así que en Android los escribirás como:

Reemplace a continuación con:

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

Debería ser así:

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

También es posible poner el contenido de su cadena en un CDATA XML, como Android Studio lo hace por usted cuando Extract string resource

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

caulitomaz
fuente
3

Esto puede ser muy viejo. Pero para aquellos que buscan un 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 maneja los caracteres de escape, puede agregar caracteres y símbolos en sus respectivas matrices.

-Salud

ralphgabb
fuente
2

Puedes escribir de esta manera

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

Salida: tú y yo

Hoque MD Zahidul
fuente
2

Para evitar el error, use la cadena de extracto:

<string name="travels_tours_pvt_ltd"><![CDATA[Travels & Tours (Pvt) Ltd.]]></string>
AGTHAMAYS
fuente
¡Esta es la mejor solución!
Fabi