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?


6
W Android Studio możesz po prostu nacisnąć, Alt+Entera program przekonwertuje dla Ciebie.
Rumit Patel,

Odpowiedzi:



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


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


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;

9

Powinno to wyglądać tak:

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


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>


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



2

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

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

To najlepsze rozwiązanie!
Fabi

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.