Làm thế nào để viết ký tự & trong chuỗi android.


430

Tôi đã viết như sau trong strings.xmltập tin:

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

Tôi đã nhận được lỗi sau:

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

Làm cách nào tôi có thể viết ký tự & trong chuỗi String?


6
Trong studio android, bạn chỉ cần nhấn Alt+Entervà nó sẽ chuyển đổi cho bạn.
Rumit Patel

Câu trả lời:



159

Đối với ký tự đặc biệt, tôi thường sử dụng định nghĩa Unicode, ví dụ: '&': \ u0026 nếu tôi đúng. Đây là một trang tham khảo tốt đẹp: http://jrgraphix.net/research/unicode_blocks.php?block=0


Điều này dường như làm việc tốt nhất. $ Amp; đi ra khỏi getString () mà không được chuyển đổi. Vì vậy, đó là một nỗi đau.
Adam

1
Điều này không phù hợp với tôi đối với một số biểu tượng, như \ u227A.
Luis A. Florit

cho use sử dụng biểu tượng & # 174; và biểu tượng nhãn hiệu ™ & # 8482;
Deepak

55

Đây là một vấn đề của tôi, giải pháp của tôi như sau: Sử dụng &gt;cho <, &lt;cho >, &amp;cho &, "'"cho ', &quotcho\"\"


1
Không thể chỉnh sửa điều này vì thay đổi rất nhỏ, thay vào đó hãy để lại nhận xét. Nó nên đọc Use &gt; for >, &lt;for <
Jose_GD

13

Ngay cả câu hỏi của bạn đã được trả lời, tôi vẫn muốn nói với nhiều thực thể như thế này. Đây là html entities, vì vậy trong Android, bạn sẽ viết chúng như sau:

Thay thế bên dưới bằng:

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

9

Nó nên như thế này:

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

7

Bạn có thể tìm thấy tất cả các ký tự đặc biệt HTML trong trang này http://www.degraeve.com/reference/specialchar character.php Chỉ cần thay thế mã nơi bạn muốn đặt ký tự đó. :-)


getString () không chuyển đổi & quot; Tôi đã phải sử dụng \ u0022
garnet

4

Cũng có thể đặt nội dung chuỗi của bạn vào XML CDATA, giống như Android Studio làm cho bạn khi bạn Extract string resource

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


3

Điều này có thể rất cũ. Nhưng đối với những người tìm kiếm một mã nhanh chóng.

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

Điều đó xử lý các ký tự thoát, bạn có thể thêm các ký tự và ký hiệu trên các mảng tương ứng của chúng.

-Cheers


2

Bạn có thể viết theo cách này

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

Đầu ra: Bạn và tôi


2

Để tránh lỗi, sử dụng chuỗi trích xuất:

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

Đây là giải pháp tốt nhất!
Fabi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.