Cara menulis karakter & di strings.xml android


430

Saya menulis yang berikut dalam strings.xmlfile:

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

Saya mendapat kesalahan berikut:

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

Bagaimana saya bisa menulis karakter & di strings.xml?


6
Di studio android, Anda cukup menekan Alt+Enterdan itu akan dikonversi untuk Anda.
Rumit Patel

Jawaban:



159

Untuk karakter khusus saya biasanya menggunakan definisi Unicode, untuk '&' misalnya: \ u0026 jika saya benar. Berikut ini adalah halaman referensi yang bagus: http://jrgraphix.net/research/unicode_blocks.php?block=0


Yang ini tampaknya bekerja yang terbaik. $ Amp; keluar dari getString () tanpa dikonversi. Jadi itu menyebalkan.
Adam

1
Ini tidak berfungsi untuk saya untuk beberapa simbol, seperti \ u227A.
Luis A. Florit

untuk Ⓡ penggunaan simbol & # 174; dan simbol merek dagang ™ & # 8482;
Deepak

55

Ini adalah masalah saya, solusi saya adalah sebagai berikut: Gunakan &gt;untuk <, &lt;untuk >, &amp;untuk &, "'"untuk ', &quotuntuk\"\"


1
Tidak dapat mengedit ini karena perubahannya kecil, meninggalkan komentar sebagai gantinya. Seharusnya membaca Use &gt; for >, &lt;for <
Jose_GD

13

Meskipun pertanyaan Anda dijawab, saya tetap ingin memberi tahu lebih banyak entitas yang sama seperti ini. Ini adalahhtml entities , jadi di android Anda akan menulis mereka seperti:

Ganti di bawah ini dengan:

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

9

Seharusnya seperti ini:

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


4

Dimungkinkan juga memasukkan konten string Anda ke dalam XML CDATA, seperti yang dilakukan Android Studio untuk Anda saat Anda Extract string resource

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


3

Ini mungkin sangat tua. Tetapi bagi mereka yang mencari kode cepat.

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

Itu menangani karakter pelarian, Anda dapat menambahkan karakter dan simbol pada array masing-masing.

-Bersulang


2

Anda bisa menulis dengan cara ini

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

Output: Anda & Saya


2

Untuk menghindari kesalahan, gunakan ekstrak string:

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

Ini solusi terbaik!
Fabi

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.