0

この単純な問題があります。メールテキストを取得するとHtml.fromHtml、文字列を正しく解析できないことがあります。

例を挙げましょう。これはHTML文字列です。

&#‪8211‬;&#‪8211‬;&#‪8211‬;&#‪8211‬;&

次のようなものである必要があります。

––––––––––––––––––––––––––– </ p>

それを達成する方法はAndroidにありますか?正規表現を使用する必要がありますか?

どうもありがとう。

4

2 に答える 2

2

あなたの例の文字列は(文字通り)のHTML表記で&#8211;&#8211;&#8211;&あるため、正しいブラウザの動作はそのようにレンダリングすることです。説明からは推測できない何らかの理由で、一部のソフトウェアは、最初に全角ダッシュ「—」を としてエンコードし、次に再びとしてエンコードするという意味で二重エンコードを適用しています。&#8211;&&amp;

ところで、一連の em ダッシュが連続すると、連続した線が生成される場合と生成されない場合があります。これはフォントによって異なります。<hr>CSS の element プロパティや border プロパティなど、長い行を生成するためのより信頼性の高い方法があります。

于 2012-12-07T11:57:22.730 に答える
2

次の方法で、隠し文字 (この場合) を除外できます。

myString = myString.replaceAll( "[\\u202C\\u202A]", "" );

その後は次のとおりです。

Html.fromHtml(myString);

そしてそれはhtmlコンテキストで動作します。または、本当の em ダッシュ文字が必要な場合:

Html.fromHtml(Html.fromHtml(myString));

概念のデモ: http://jsfiddle.net/CGzDc/ (javascript、Java のこの回答のコードを使用する必要があります)

于 2012-12-07T20:28:51.567 に答える