android html解码

mic*_*ith 4 html android decode

我对在我向用户显示之前需要解码的html文本感到困惑.我做:

result= Html.fromHtml(temp).toString();
Run Code Online (Sandbox Code Playgroud)

其中temp包含类似:"B\M碰撞修复".但是,结果与执行后的temp完全相同.我在这里错过了什么?

Ale*_*lex 17

一些澄清:

  • "B \u0026 M Collision Repair" 不是HTML.
  • "B & M Collision Repair" 是HTML.

Java到HTML

"B \u0026 M Collision Repair"不是HTML.它是Java String文字,或者您如何在Java代码中创建字符串.Unicode字符存储为已解码的原始字符.该\u表示法仅用于在创建字符串时转义unicode字符,而不是以这种方式存储.旁注,因为这个符号字符在ISO-8859-1范围内,所以不需要以这种方式进行转义."B & M Collision Repair"在Java中也是如此.

将Java字符串转换为HTML是很常见的,应该这样做是为了在Web浏览器中显示Java字符串.这将被称为编码HTML.

要将Java字符串转换为HTML,从而将Java原始unicode字符编码为HTML实体:

String java = "B \u0026 M Collision Repair";
#=> (String) "B \u0026 M Collision Repair"
#=> (String) "B & M Collision Repair"

String html = Html.escapeHtml(html);
#=> (String) "B &  M Collision Repair"
#=> (String) "B &  M Collision Repair"

#or
String html = Html.toHtml(html).toString();
#=> (String) "B &  M Collision Repair"
#=> (String) "B &  M Collision Repair"
Run Code Online (Sandbox Code Playgroud)

HTML到Java

"B & M Collision Repair"是HTML.Unicode字符存储为编码字符实体.该&#x;符号用于转义unicode字符,以便通过ISO-8859-1进行传输.Web浏览器对它们进行解码以显示实际的unicode字符.

将HTML转换为Java字符串不太常见,通常保留用于"抓取"或"解析"Java字符串以便在某些不支持HTML的系统中进行存储和显示.这将被称为解码HTML.

要将HTML转换为Java字符串,从而将HTML实体解码为Java原始unicode字符:

String html = "B & M Collision Repair";
#=> (String) "B & M Collision Repair"

String java = Html.fromHtml(html).toString();
#=> (String) "B \u0026 M Collision Repair"
#=> (String) "B & M Collision Repair"
Run Code Online (Sandbox Code Playgroud)