Android には、文字列内の HTML 文字/エンティティをエスケープ/エンコードする 2 つの方法があります。
Html.escapeHtml(String)
、API 16 (Android 4.1) で追加されました。ドキュメントは言う:指定されたプレーン テキストの HTML エスケープ表現を返します。
TextUtils.htmlEncode(String)
これについては、ドキュメントは次のように述べています。文字列を HTML エンコードします。
ドキュメントを読むと、どちらもほとんど同じことをしているように見えますが、テストすると、(私にとっては) かなり不思議な出力が得られます。
例えば。入力で:<p>This is a quote ". This is a euro symbol: €. <b>This is some bold text</b></p>
Html.escapeHtml
与えます:<p>This is a quote ". This is a euro symbol: €. <b>This is some bold text</b></p>
一方
TextUtils.htmlEncode
、与えます:<p>This is a quote ". This is a euro symbol: €. <b>This is some bold text</b></p>
したがって、2 番目は引用符 ( " )をエスケープ/エンコードするようですが、最初はそうではありません。1 番目はユーロ記号をエンコードしますが、2 番目はそうではありません。混乱しています。
では、これら2つの方法の違いは何ですか? それぞれがどの文字をエスケープ/エンコードしますか? ここでのエンコーディングとエスケープの違いは何ですか? いつどちらか一方を使用する必要がありますか (または、あえぎ、両方を一緒に使用する必要がありますか?)?