0

文字 '<' '>' を文字列リソースに入れようとしています。

文字列内で HTML エンコーディングを使用する場合:

&lt;&gt; 

最初のビルドで動作します。ただし、プロジェクトをもう一度ビルドすると、何かが自動的に次のように変換します。

&amp;lt;&amp;gt;

だから私は以前のエンコーディングを使用することはできません...

文字列に "<" または "\<" を入れようとすると、XML エラーが発生します。

CDATA を使用しようとすると、上記と同じ動作になります。

このがらくたに「<」または「>」文字を入れるにはどうすればよいですか?

アップデート

「eclipse」タグを追加しました。いくつかの議論の後、Eclipse の問題のように思われるためです。何かが XML ファイルを自動的に編集します。更新された質問は、なぜ eclipse が時々私の strings.xml ファイルを台無しにして、独自に特殊文字をエンコードしようとするのですか?

4

2 に答える 2

2

これはうまくいくはずです
<string name="angle_bracket">
<![CDATA[
<
]]>
</string>

そうでない場合は、プロジェクトの他の場所に問題があります。(新しいAndroidプロジェクトで試してみると確信できます)

于 2013-07-25T00:26:42.330 に答える
0

私の現在の回避策は、Java クラスでハードコーディングされた文字列を使用することです。

String s = "<M>";
mTextView.setText(s);

他の明白な答え (CDATA を使用) は理論的には正しいので、+1 しますが、Eclipse が CDATA セクションをエンコードされた文字列 (そして私の文字列) に変換するため、いくつかのビルド サイクルの後、私の Eclipse 環境では機能しません。私のアプリでは「CDATA...」と表示されます)。

よりクリーンなソリューションが見つからないので、それが答えです。

于 2013-07-31T13:59:56.843 に答える