【问题标题】:Android special characters converted to images in WebView?Android特殊字符转换为WebView中的图像?
【发布时间】:2014-12-17 02:50:03
【问题描述】:

特殊字符如

???? ★ ✉

在 Android 操作系统中被替换为图片。如您所见,这似乎会影响原生TextViews(见截图)。

我的问题是它们也影响了我通过我的应用程序通过WebView 加载的 HTML。主要问题是不同颜色的星星都显示为同一颗灰色星星。除此之外,您可以想象出现的视觉不一致问题。

如果您在 Android 版 Chrome 上加载此页面,则根本不会加载字符。但是,如果您将问题复制并粘贴到 ColorNote 等纯文本程序中,您会看到我遇到的情况。

有没有办法让我自己的WebView 甚至我的整个应用程序都使用字体系列,而不是图像?

【问题讨论】:

  • 我没见过这样的问题。据我所知,Android 对一般 Unicode 字符没有特殊处理——如果它们在字体(或备用字体)中,它们就会显示出来;否则你会得到一个盒子或其他东西(或什么都没有)。您能否提供代码显示您如何显示此文本?您是否使用自定义字体?哪个版本的 Android 显示此问题?模拟器还是真机?
  • 代码:📂, ★ ✉。我很快就会发布一张图片,让你明白我的意思。

标签: android image unicode webview colors


【解决方案1】:

一个疯狂的猜测,因为我现在才听说这发生在 iOS 上。

How can I disable the unicode black telephone from being rendered as a red phone on iOS Mail app?

I need help getting a normal looking unicode down arrow in a UILabel like this ⬇

Unicode 有一个漂亮的东西,称为“变体选择器”,除其他外,它可用于选择字母的变体形状,或选择是否将字形呈现为黑白标准字形,或作为彩色图片。

此变体是字符\uFE00\uFE0F。对于表情符号,\uFE0E 表示“将前一个字符渲染为黑白字形”,\uFE0F 表示“尝试将前一个字符绘制为彩色图片”。

所以在你的情况下,在字符后添加\uFE0E

【讨论】:

  • 似乎是个好主意,但没有奏效。我尝试添加&#xfe0e,它仍然将文件夹呈现为橙色。
  • @GeorgeBailey 您是直接在表情符号之后添加的,还是在字符串末尾添加的?
  • 直接。甚至没有分隔两个 HTML 实体的零宽度空间。在这方面,iPad 似乎比 Android 上基于 Chromium 的 WebView 要高一个。我将让一位同事创建图像,然后我将在明天晚些时候安装它们,这样应该可以解决眼前的问题。不过,如果有其他方法,当我们需要调整颜色等时,它会节省更新图像的时间。
  • Firefox 现在正在内部引入图像。他们似乎尊重这个控制字符来禁用该功能。
  • @GeorgeBailey 所以又是 Apple 执行标准错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-04
  • 2022-07-10
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多