안드로이드 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
안드로이드 스튜디오에서 간단히 누르기 만하면 Alt+Enter변환됩니다.
Rumit Patel

답변:



159

특수 문자의 경우 일반적으로 '&'에 대해 유니 코드 정의를 사용합니다 (예 : 올바른 경우 \ u0026). 좋은 참조 페이지는 다음과 같습니다. http://jrgraphix.net/research/unicode_blocks.php?block=0


이것은 가장 잘 작동하는 것 같습니다. $ amp; 변환하지 않고 getString ()에서 나옵니다. 그래서 그것은 고통입니다.
Adam

1
이것은 \ u227A와 같은 일부 기호에서는 작동하지 않았습니다.
Luis A. Florit

Ⓡ 기호 사용 & # 174; 및 상표 ™ 기호 & # 8482;
Deepak

55

이것은 내 문제이며 내 솔루션은 다음과 같습니다. &gt;for <, &lt;for >, &amp;for &, "'"for ', &quotfor\"\"


1
변경 사항이 적으므로 주석을 남기지 않고이를 편집 할 수 없습니다. 읽어야합니다 Use &gt; for >, &lt;for <
Jose_GD

13

귀하의 질문에도 대답하지만 여전히이 같은 더 많은 엔티티를 말하고 싶습니다. 이것들은 html entitiesAndroid에서 다음과 같이 작성합니다.

아래로 교체하십시오 :

& 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

Android Studio에서와 같이 문자열 내용을 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>

출력 : 당신과 나


2

오류를 피하려면 extract string을 사용하십시오.

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

이것이 최고의 솔루션입니다!
Fabi

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.