【问题标题】:HTML symbol not displaying in ChromeHTML 符号未在 Chrome 中显示
【发布时间】:2022-01-13 02:46:09
【问题描述】:

我想显示以下符号:"\ud83c\uddfa\ud83c\uddf8" 这在 HTML 中应该显示美国的国旗。前半部分显示“U”,后半部分显示“S”。放在一起,它显示了一个标志的小符号(通过我不确定的机制)。好吧,至少在 Firefox 中是这样。它不在 Chrome 中。在 Chrome 中,它只显示“U S”。

我希望 Chrome 可以和 Firefox 一样好用:D 但统计数据告诉我们,很大一部分互联网用户使用 Chrome。

知道我缺少什么以便 Chrome 显示标志符号吗? 我最初在 index.html 头中有这个:

<meta charset=utf-8">

另一条 SO 评论提到它必须替换为以下内容,但这并不能解决问题。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

编辑:this link 表示没有修复。方法是改用图像(.png/.webp/.svg)。这有点傻。我觉得 unicode 解决方案会是最轻量的。

【问题讨论】:

  • 注意:您的问题缺乏基本细节:您将符号 "\ud83c\uddfa\ud83c\uddf8" 放在哪里?了解上下文很重要(并且您的链接解决方案使用实体,因此它在这里也不适用。(是的:select/option 标签在 HTML 中定义错误。这是一个众所周知的问题)。
  • 如下:

    {"\ud83c\uddfa\ud83c\uddf8"}

    。或以下 HTML 等效项:

    🇺🇸

    。在这两种情况下,Firefox 都会显示标志,而 Chrome 会显示字母 U 和 S

标签: html google-chrome unicode


【解决方案1】:

[...] "\ud83c\uddfa\ud83c\uddf8" 这在 HTML 中应该显示美国国旗。

HTML 中没有"\ud83c\uddfa\ud83c\uddf8" 应该读作"\ud83c\uddfa\ud83c\uddf8"
HTML 使用HTML entities,这个字形的就是🇺🇸

🇺 + 🇸 = 🇺🇸

【讨论】:

  • 好吧,我的代码不言自明。提到的代码确实按预期显示了标志。同样,在 Firefox 中,而不是在 Chrome 中。
  • 那么你的代码不是 HTML。 jsfiddle.net/y5b3dcvo 在你拥有的任何浏览器中运行这个小提琴"\ud83c\uddfa\ud83c\uddf8"
  • ... 字符串 "\ud83c\uddfa\ud83c\uddf8" 在解析为 HTML 时将生成一个 TextNode,其值为 "\ud83c\uddfa\ud83c\uddf8"。这就是 HTML 的工作原理。如果您还有其他内容,那么您的序列尚未被 HTML 解析器解析。如果发生这种情况,那是因为您的代码不是 HTML。 elem.innerHTML = "\ud83c\uddfa\ud83c\uddf8"; 是 JavaScript,不是 HTML,序列由 JS 引擎解析。对于 HTML,您需要的是 HTML 实体。
猜你喜欢
  • 1970-01-01
  • 2021-11-11
  • 2021-06-08
  • 1970-01-01
  • 2020-07-01
  • 2013-12-24
  • 2010-12-14
  • 1970-01-01
  • 2015-10-03
相关资源
最近更新 更多