IT源码网

安卓html解码

mfryf 2023年04月21日 程序员 18 0

我对在向用户显示之前需要解码的 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" 


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!