web-dev-qa-db-ja.com

Android strings.xmlに&文字を書くにはどうすればいいですか?

strings.xmlファイルに次のように書きました。

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

次のようなエラーが出ました。

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

Strings.xmlに&という文字を書くにはどうすればいいですか?

380
Palo

それをエンコード:

&amp;
943
Bob Fincheimer

特殊文字の場合は通常Unicode定義を使用します。 '&'の場合はその例です。正しい場合は\ u0026を使用してください。これはNiceのリファレンスページです。 http://jrgraphix.net/research/unicode_blocks.php?block=0

157
Moss

これは私の問題です。私の解決策は次のとおりです。&gt;<&lt;>&amp;&"'"'&quot\"\"を使用します。

40
Hai Rom

あなたの質問にも答えられます、それでも私はこのようにもっと多くの実体を言いたいです。これらはhtml entitiesなので、Androidでは次のように書くでしょう。

以下を以下に置き換えます。

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

これは次のようになります。

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

このページですべてのHTML特殊文字を見つけることができます http://www.degraeve.com/reference/specialcharacters.php あなたがどこにコードを置き換えその文字を入れたい。 :-)

7
AZ_

あなたがExtract string resourceしたときにAndroid Studioがあなたのためにするように、あなたの文字列の内容をXML CDATAに入れることも可能です。

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

4
caulitomaz

これはとても古いかもしれません。しかし、簡単なコードを探している人のために。

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

エスケープ文字を処理するので、それぞれの配列に文字と記号を追加できます。

-乾杯

3
ralphgabb

このように書くことができます

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

出力:あなたと私

2

エラーを回避するには、extract stringを使用してください。

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

MacおよびAndroidスタジオのユーザー:

String.xmlまたはレイアウトに&などの文字を入力し、[Option]キーと[Return]キーを選択します。 スクリーンショットを参照してください

0
Bellan