【问题标题】:Why ✓ symbol sometimes gets replaced with ✓ one?为什么 ✓ 符号有时会被替换为“一”?
【发布时间】:2019-03-21 07:41:59
【问题描述】:

我有以下 css 规则:

.icon {
    content: "✓";
    color: #337ab7;
    display: inline-block;
    width: 1em;
    margin-left: -1em;
}

我在哪里使用 UTF-8 字符 ✓。但我发现有时这个符号会被页面上的“-”符号替换。

为什么会这样?

[更新]

  • 72.0.3626.121版本的Chorme浏览器。
  • 标题部分包含<meta charset="utf-8"> 声明

[更新 2]:我发现 css 文件以响应头响应:

content-encoding: br

【问题讨论】:

  • 使用什么浏览器?这是内联 CSS 还是在 CSS 文件中?父文件使用什么实际编码?在 Wireshark 之类的工具中,响应是什么样的?
  • 我正在使用 Chrome。这是外部 CSS 文件。此文件的响应包含损坏的符号。同样,此问题有时会出现。
  • 设置<meta charset="utf8">不会设置页面的编码,它只是在无法自动确定实际使用的编码时给浏览器的提示(另外,它是utf-8而不是utf8)。重要的是用于保存页面标记或在网络应用程序中生成它的软件使用的实际编码。
  • 我使用 Cloudflare 作为 CDN。也许是它的原因
  • 也许我应该使用 HTML 实体?

标签: html css unicode


【解决方案1】:

尝试使用实体:content: "\2713";

【讨论】:

    【解决方案2】:

    原因:字符是U+2713(Unicode码位),在UTF-8中编码为E2 9C 93。所以我假设你的文件被正确编码为 UTF-8。

    但不知何故,该文件被读取为 Windows-1252,其中 E2â9Cœ93。也许您的服务器认为它是文本并使用一些过时的编码来宣传编码(CSS,以及大多数网络,默认情况下应该是 UTF-8)。

    您可能需要在 CSS 顶部添加 @charset "utf-8";,以强制浏览器将文件解释为 UTF-8。详情请见https://www.w3.org/International/questions/qa-css-charset

    【讨论】:

      猜你喜欢
      • 2013-09-10
      • 2020-12-03
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多