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?

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

Antworten:

1036

Codiere es:

&amp;
Bob Fincheimer
quelle
1
Wenn Sie CDATA verwenden, beachten Sie, dass einige Zeichen reserviert sind. © -> & copy; Siehe diesen Artikel. w3schools.com/html/html_entities.asp
toidiu
1
\ u0026 Besser Unicode verwenden, wie von @Moss
Neo
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

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

Hai Rom
quelle
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;
Khemraj
quelle
9

Es sollte so sein:

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

Sie finden alle HTML-Sonderzeichen auf dieser Seite http://www.degraeve.com/reference/specialcharacters.php. Ersetzen Sie einfach den Code, in dem Sie das Zeichen einfügen möchten. :-)

AZ_
quelle
getString () konvertiert & quot; Ich musste \ u0022
Granat
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>

Caulitomaz
quelle
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

ralphgabb
quelle
2

Sie können auf diese Weise schreiben

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

Ausgabe: Du & ich

Hoque MD Zahidul
quelle
2

Verwenden Sie die Extraktionszeichenfolge, um den Fehler zu vermeiden:

<string name="travels_tours_pvt_ltd"><![CDATA[Travels & Tours (Pvt) Ltd.]]></string>
AGTHAMAYS
quelle
Dies ist die beste Lösung!
Fabi
0

Benutzer von Mac- und Android-Studios:

Geben Sie Ihr Zeichen wie & in die Zeichenfolge.xml oder das Layout ein und wählen Sie die Tasten "Option" und "Return". Bitte beachten Sie den Screenshot

Bellan
quelle