Android有两种不同的方法来转义/编码Strings中的HTML字符/实体:
> Html.escapeHtml(String),在API 16(Android 4.1)中添加.文档说:
Returns an HTML escaped representation of the given plain text.
Html-encode the string.
阅读文档,他们似乎都做了几乎相同的事情,但是,在测试它们时,我得到一些非常神秘(对我而言)的输出.
例如.使用输入:< p>这是一个引号“.这是一个欧元符号:€.< b>这是一些粗体文本< / 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>
所以似乎第二个转义/编码引号(“),但第一个没有,虽然第一个编码欧元符号,但第二个没有.我很困惑.
那么这两种方法有什么区别呢?每个转义/编码的字符是什么?编码和转义之间的区别是什么?我什么时候应该使用其中一种(或者我应该喘气,一起使用它们?)?