Come scrivere caratteri e in android strings.xml


430

Ho scritto quanto segue nel strings.xmlfile:

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

Ho ricevuto il seguente errore:

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

Come posso scrivere carattere e in strings.xml?


6
In Android Studio, puoi semplicemente premere Alt+Entere convertirà per te.
Rumit Patel,

Risposte:



159

Per il carattere speciale di solito uso la definizione Unicode, ad esempio "&": \ u0026 se ho ragione. Ecco una bella pagina di riferimento: http://jrgraphix.net/research/unicode_blocks.php?block=0


Questo sembra funzionare al meglio. $ Amp; esce da getString () senza essere convertito. Quindi è un dolore.
Adam,

1
Questo non ha funzionato per me per alcuni simboli, come \ u227A.
Luis A. Florit,

per Ⓡ simbolo usa & # 174; e marchio di fabbrica ™ simbolo & # 8482;
Deepak,

55

Questo è un mio problema, la mia soluzione è la seguente: Utilizzare &gt;per <, &lt;per >, &amp;per &, "'"per ', &quotper\"\"


1
Non è possibile modificarlo perché la modifica è minuscola, lasciando invece un commento. Dovrebbe leggere Use &gt; for >, &lt;for <
Jose_GD

13

Anche alla tua domanda viene data risposta, comunque voglio dire più entità allo stesso modo. Questi sono html entities, quindi in Android li scriverai come:

Sostituisci di seguito con:

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

9

Dovrebbe essere così:

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


4

È anche possibile inserire il contenuto della stringa in un CDATA XML, come Android Studio fa per te quando lo fai Extract string resource

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


3

Questo potrebbe essere molto vecchio. Ma per coloro che cercano un codice rapido.

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

Che gestisce i caratteri di escape, è possibile aggiungere caratteri e simboli sui rispettivi array.

-Saluti


2

Puoi scrivere in questo modo

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

Uscita: You & Me


2

Per evitare l'errore, utilizzare la stringa di estrazione:

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

Questa è la soluzione migliore!
Fabi,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.