Wie schreibe ich Zeichen & in android strings.xml


429

Ich habe folgendes in die strings.xmlDatei geschrieben:

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

Ich habe folgenden Fehler erhalten:

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

Wie kann ich Zeichen & in die Datei strings.xml schreiben?


6
In Android Studio können Sie einfach drücken Alt+Enterund es wird für Sie konvertieren.
Rumit Patel

Antworten:



159

Für Sonderzeichen verwende ich normalerweise die Unicode-Definition, für das '&' zum Beispiel: \ u0026, wenn ich richtig bin. Hier ist eine schöne Referenzseite: http://jrgraphix.net/research/unicode_blocks.php?block=0


Dieser scheint am besten zu funktionieren. Die $ amp; kommt aus getString () heraus, ohne konvertiert zu werden. Es ist also ein Schmerz.
Adam

1
Bei einigen Symbolen wie \ u227A hat dies bei mir nicht funktioniert.
Luis A. Florit

Verwenden Sie für Ⓡ Symbol & # 174; und Markenzeichen ™ & # 8482;
Deepak

54

Dies ist ein Problem, meine Lösung lautet wie folgt: Verwenden Sie &gt;für <, &lt;für >, &amp;für &, "'"für ', &quotfür\"\"


1
Dies kann nicht bearbeitet werden, da die Änderung winzig ist und stattdessen einen Kommentar hinterlässt. Es sollte lauten Use &gt; for >, &lt;for <
Jose_GD

13

Sogar Ihre Frage wird beantwortet, dennoch möchte ich mehr Entitäten wie diese erzählen. Diese sind html entities, also in Android werden Sie sie schreiben wie:

Ersetzen Sie unten durch:

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

9

Es sollte so sein:

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


4

Es ist auch möglich, den Inhalt Ihrer Zeichenfolge in eine XML-CDATA zu kopieren, wie dies Android Studio für Sie tut, wenn Sie dies tun Extract string resource

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


3

Das kann sehr alt sein. Aber für diejenigen, die nach einem schnellen Code suchen.

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

Damit werden Escape-Zeichen behandelt. Sie können Zeichen und Symbole zu ihren jeweiligen Arrays hinzufügen.

-Prost


2

Sie können auf diese Weise schreiben

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

Ausgabe: Du & ich


2

Verwenden Sie die Extraktionszeichenfolge, um den Fehler zu vermeiden:

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

Dies ist die beste Lösung!
Fabi

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.