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?


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

Respuestas:



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


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\"\"


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;

9

Debería ser así:

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


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>


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


2

Puedes escribir de esta manera

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

Salida: tú y yo


2

Para evitar el error, use la cadena de extracto:

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

¡Esta es la mejor solución!
Fabi

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.