我对在向用户显示之前需要解码的 html 文本感到困惑。 我这样做:
result= Html.fromHtml(temp).toString();
其中 temp 包含类似:“B\u0026 M Collision Repair”的内容。 但是结果包含与执行后的临时文件完全相同的内容。 我在这里缺少什么?
请您参考如下方法:
一些说明:
“B\u0026 M Collision Repair”
不是 HTML。“B & M 碰撞修复”
是 HTML。
Java 到 HTML
“B\u0026 M Collision Repair”
不是 HTML。这是一个Java String literal ,或者您如何在 Java 代码中创建字符串。 Unicode 字符存储为解码的原始字符。 \u
符号仅用于在创建字符串时转义 unicode 字符,它不是以这种方式存储的。旁注,因为这个 & 字符在 ISO-8859-1 范围内,所以不需要以这种方式转义。 “B & M 碰撞修复”
在 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"
HTML 到 Java
“B & M 碰撞修复”
是 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"