Androidのstrings.xmlに文字を書く方法


430

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に文字&を書き込むにはどうすればよいですか?


6
Android Studioでは、単に押すだけでAlt+Enter変換されます。
Rumit Patel

回答:



159

特殊文字の場合、通常は「&」などのUnicode定義を使用します。たとえば、正しい場合は\ u0026です。ここに素敵なリファレンスページがあります:http : //jrgraphix.net/research/unicode_blocks.php?block=0


これが一番うまくいくようです。$ amp; 変換されずにgetString()から取得されます。だからそれは苦痛です。
アダム

1
これは、\ u227Aなどの一部の記号では機能しませんでした。
Luis A. Florit 2013

Ⓡ記号には&#174; および商標™シンボル&#8482;
Deepak '19年

55

これは私の問題です、私の解決策は次のとおりです:&gt;for <&lt;for >&amp;for &"'"for '&quotfor\"\"


1
変更が小さいため、これを編集できません。代わりにコメントを残してください。読む必要があります Use &gt; for >, &lt;for <
Jose_GD

13

あなたの質問にも答えられますが、それでも私は同じようにもっと多くのエンティティに伝えたいです。これらはhtml entitiesなので、Androidでは次のように記述します。

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

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

9

それはこのようになるはずです:

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


4

文字列のコンテンツをXML CDATAに入れることもできます。 Extract string resource

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


3

これは非常に古い可能性があります。しかし、簡単なコードを探している人のために。

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

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

-乾杯


2

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

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

出力: You&Me


2

エラーを回避するには、抽出文字列を使用します。

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

これが最善の解決策です!
ファビ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.