2010-06-16 5 views
319

Ich schrieb das folgende in der strings.xml Datei:Wie kann ich schreiben Charakter und in android strings.xml

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

Ich habe die folgende Fehlermeldung:

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

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

Antwort

798

Encode es:

&amp; 
+29

Um die Codes zu erhalten verwenden http://www.mikezilla.com/exp0012.html wandelt alles Sie geben ein, also müssen Sie die Werte nicht nachschlagen – Entreco

+0

http://www.mikezilla.com/exp0012.html -> Link Broken. –

+0

Wenn Sie CDATA verwenden, beachten Sie, dass einige Zeichen reserviert sind. © -> © Siehe diesen Artikel. http://www.w3schools.com/html/html_entities.asp – toidiu

140

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

+12

+1 für die Unicode-Tabelle – Necronet

+0

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

+1

Dies funktionierte nicht für mich für einige Symbole, wie \ u227A. –

2

Es ist auch möglich, den Inhalt der Zeichenfolge in ein XML-CDATA setzen, wie Android Studio für Dich tut, wenn Sie Extract string resource

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

2

Diese sehr alt sein können. Aber für diejenigen, die einen 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; 
} 

Die Escape-Zeichen behandelt, können Sie Zeichen und Symbole auf ihren jeweiligen Arrays hinzufügen.

-Cheers

26

Dieses eine meiner Fragen ist, ist meine Lösung, wie folgend: Verwenden &gt; für <, &lt; für>, &amp; für &, "'" für '&quot für \ "\"

4

Es sollte wie folgt sein:

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

den Fehler, Verwendung Extrakt Zeichenfolge zu vermeiden:

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

Sie

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

Ausgang schreiben: Sie & Me