安卓html解码

标签 android html decode

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

关于安卓html解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9177889/

相关文章:

java - 我在 Android 上的提供商是哪一个?

Android调用getview

android - Mockito Stubbed Spy 有时会调用有时不会调用被侦测对象的方法

android - 如何在 Android 上的 WebRTC 通话期间将麦克风录制为更压缩的格式?

javascript - 悬停时淡出元素并允许用户选择下面的文本 - 可能吗?

javascript - AngularJS ng-重复随机顺序

javascript - 使用 jQuery 更改 img 高度,使其与宽度具有一定的纵横比

swift - 如何在 Swift 中解码 NSURL 中的特殊字符?

react-native - 如何在 TensorflowJs 中将张量解码为 Base64?

json - 如何将具有多个结构的 JSON 附加到数组中?