Jak napisać znak i w Androidzie strings.xml

430

W strings.xmlpliku napisałem :

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

Wystąpił następujący błąd:

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

Jak napisać znak i w pliku strings.xml?

Palo
źródło
6
W Android Studio możesz po prostu nacisnąć, Alt+Entera program przekonwertuje dla Ciebie.
Rumit Patel,

Odpowiedzi:

1037

Zakoduj to:

&amp;
Bob Fincheimer
źródło
1
Jeśli używasz CDATA, pamiętaj, że niektóre znaki są zastrzeżone. © -> & copy; Zobacz ten artykuł. w3schools.com/html/html_entities.asp
toidiu
1
\ u0026 Lepiej używać Unicode zgodnie z sugestią @Moss
Neo
159

W przypadku znaków specjalnych zwykle używam definicji Unicode, na przykład „&”, na przykład: \ u0026, jeśli mam rację. Oto ładna strona referencyjna: http://jrgraphix.net/research/unicode_blocks.php?block=0

Mech
źródło
Ten wydaje się działać najlepiej. $ Amp; wychodzi z getString () bez konwersji. To jest ból.
Adam
1
To nie działało dla mnie w przypadku niektórych symboli, takich jak \ u227A.
Luis A. Florit,
dla Ⓡ użyj symbolu & # 174; i znak towarowy ™ & # 8482;
Deepak,
55

To jest moje problemy, moje rozwiązanie jest następujące: Użyj &gt;dla <, &lt;na >, &amp;na &, "'"na ', &quotna\"\"

Hai Rom
źródło
1
Nie można go edytować, ponieważ zmiana jest niewielka, zamiast tego pozostawia komentarz. Powinien brzmieć Use &gt; for >, &lt;for <
Jose_GD
13

Nawet na twoje pytanie udzielono odpowiedzi, nadal chcę powiedzieć więcej takich samych podmiotów. To sąhtml entities , więc w Androidzie napiszesz je w następujący sposób:

Zamień poniżej na:

& with &amp;
> with &gt;
< with &lt;
" with &quot;, &ldquo; or &rdquo;
' with &apos;, &lsquo; or &rsquo;
} with &#125;
Khemraj
źródło
9

Powinno to wyglądać tak:

<string name="game_settings_dragNDropMove_checkBox">Move by Drag&amp;Drop</string>
faruk
źródło
7

Wszystkie specjalne znaki HTML można znaleźć na tej stronie http://www.degraeve.com/reference/specialcharacters.php Po prostu zamień kod w miejscu, w którym chcesz umieścić ten znak. :-)

AZ_
źródło
getString () nie konwertuje & rdquo; Musiałem użyć \ u0022
granat
4

Możliwe jest również umieszczenie zawartości łańcucha na XML CDATA, tak jak robi to Android Studio, kiedy Ty Extract string resource

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

caulitomaz
źródło
3

To może być bardzo stare. Ale dla tych, którzy szukają szybkiego kodu.

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

To obsługuje znaki ucieczki, możesz dodawać znaki i symbole do odpowiednich tablic.

-Twoje zdrowie

ralphgabb
źródło
2

Możesz pisać w ten sposób

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

Wyjście: Ty i ja

Hoque MD Zahidul
źródło
2

Aby uniknąć błędu, użyj wyciągu z ciągu:

<string name="travels_tours_pvt_ltd"><![CDATA[Travels & Tours (Pvt) Ltd.]]></string>
AGTHAMAYS
źródło
To najlepsze rozwiązanie!
Fabi