Reputation: 10771
I wrote the following in the strings.xml
file:
<string name="game_settings_dragNDropMove_checkBox">Move by Drag&Drop</string>
I got the following error:
The reference to entity "Drop" must end with the ';' delimiter.
How can I write character & in the strings.xml?
Upvotes: 508
Views: 352776
Reputation: 1324
& in string like:
<string name="string_abc">Translate & Scan Objects</string>
Output will be:
Translate & Scan Objects
Upvotes: 8
Reputation: 81
I'm posting this because none of the above encodings worked for me.
I found that replacing the ampersand with the sequence: &
worked as an xml string resource. As in:
<string name="webLink"><a href="https://www.example.com?param1=option1&param2=option2">click here</a></string>
Upvotes: 0
Reputation: 81
The simplest way I've found is to replace the '&' with the Unicode equivalent. So for the example given write:
<string name="game_settings_dragNDropMove_checkBox">Move by Drag\u0026Drop</string>
Upvotes: 0
Reputation: 1811
This is a my issues, my solution is as following: Use >
for >
, <
for <
, &
for &
,"'"
for '
, "
for \"\"
Upvotes: 86
Reputation: 207
If you want to hardcode the string in xml directly, you can add it up this way.
<TextView
android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="You & Me"
Upvotes: 1
Reputation: 129
Mac and Android studio users:
Type your char such as & in the string.xml or layout and choose "Option" and "return" keys. Please refer the screen shot
Upvotes: 1
Reputation: 59004
Even your question is answered, still i want tell more entities same like this.
These are html entities
, so in android you will write them like:
Replace below with:
& with &
> with >
< with <
" with ", “ or ”
' with ', ‘ or ’
} with }
Upvotes: 30
Reputation: 3098
To avoid the error, use extract string:
<string name="travels_tours_pvt_ltd"><![CDATA[Travels & Tours (Pvt) Ltd.]]></string>
Upvotes: 4
Reputation: 11989
You can write in this way
<string name="you_me">You & Me<string>
Output: You & Me
Upvotes: 1
Reputation: 5841
It should be like this :
<string name="game_settings_dragNDropMove_checkBox">Move by Drag&Drop</string>
Upvotes: 10
Reputation: 10538
This may be very old. But for those whose looking for a quick code.
public String handleEscapeCharacter( String str ) {
String[] escapeCharacters = { ">", "<", "&", """, "'" };
String[] onReadableCharacter = {">", "<", "&", "\"\"", "'"};
for (int i = 0; i < escapeCharacters.length; i++) {
str = str.replace(escapeCharacters[i], onReadableCharacter[i]);
} return str;
}
That handles escape characters, you can add characters and symbols on their respective arrays.
-Cheers
Upvotes: 5
Reputation: 2351
It is also possible put the contents of your string into a XML CDATA, like Android Studio does for you when you Extract string resource
<string name="game_settings_dragNDropMove_checkBox"><![CDATA[Move by Drag&Drop]]></string>
Upvotes: 6
Reputation: 6012
For special character I normally use the Unicode definition, for the '&' for example: \u0026 if I am correct. Here is a nice reference page: http://jrgraphix.net/research/unicode_blocks.php?block=0
Upvotes: 170