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?

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

Jawaban:

1038

Encode:

&amp;
Bob Fincheimer
sumber
1
Jika menggunakan CDATA maka ketahuilah bahwa beberapa karakter sudah dipesan. © -> & salin; Lihat artikel ini. w3schools.com/html/html_entities.asp
toidiu
1
\ u0026 Lebih baik menggunakan unicode seperti yang disarankan oleh @Moss
Neo
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

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

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

Seharusnya seperti ini:

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

Anda dapat menemukan semua Karakter Khusus HTML di halaman ini http://www.degraeve.com/reference/specialcharacters.php Cukup ganti kode tempat Anda ingin meletakkan karakter itu. :-)

AZ_
sumber
getString () tidak mengonversi & quot; Saya harus menggunakan \ u0022
garnet
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>

caulitomaz
sumber
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

ralphgabb
sumber
2

Anda bisa menulis dengan cara ini

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

Output: Anda & Saya

Hoque MD Zahidul
sumber
2

Untuk menghindari kesalahan, gunakan ekstrak string:

<string name="travels_tours_pvt_ltd"><![CDATA[Travels & Tours (Pvt) Ltd.]]></string>
AGTHAMAYS
sumber
Ini solusi terbaik!
Fabi