html - 为什么在设置按钮 :after { content }? 时随机得到字符串 "Ã-"而不是 "×"

标签 html css less

我正在使用以下 css 设置将删除标签的按钮的文本:

button.close:after {
  content: '×';
}

这会产生一个像这样的好看的按钮:

nice looking close button

但随机字符串 × 被字符串 Ã- 替换。我首先认为这可能与编码有关,但如果确实是问题所在,我认为这不会随机发生。它发生的频率很低,目前还没有发生(一旦再次发生,将用另一个打印屏幕更新问题)。

此 css 代码来自一个 .less 文件,我正在编译该文件,然后对其进行缩小,然后进行连接。

如何确保字符串×一直显示?

最佳答案

multiplication character具有 UTF-8 序列 0xC3 0x97。当使用 Windows-1252 character set 解码时相反,它变成了 ×(A tildeem dash)。

因此,问题确实在于 CSS 被解码为 Windows-1252 而不是 UTF-8。 CSS 通常以与 HTML 文档相同的方式解码,因此页面和 HTTP header 中似乎都没有字符集规范 netier。这迫使浏览器猜测编码是什么。由于浏览器使用任何可用数据进行猜测(并且浏览器之间的算法不同),猜测可能会有所不同,具体取决于缓存中已经有多少页面和相关文件。

在 HTML 头部指定页面的编码:

<meta charset="utf-8">

您还可以通过在顶部添加此代码来专门为 CSS 文件指定编码,但仅当它与页面编码不同时才需要:

@charset "utf-8";

关于html - 为什么在设置按钮 :after { content }? 时随机得到字符串 "Ã-"而不是 "×",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32653725/

相关文章:

css - IE 中的空跨占用空间

html - 列表元素 anchor 标记中的对齐文本

javascript - 检测平板电脑屏幕方向的最佳全局方法是什么

css - 包含特定目录级别的 sublime 元素

javascript - 比较起始日期小于截止日期

javascript - Android网页中的链接变蓝

html - 我怎样才能用CSS制作对 Angular 线

javascript - 使用 javascript 聚焦不会像使用 Tab 时那样显示复选框的轮廓样式

javascript - Gulp less 未正确处理包括未定义的包含变量

css - 我如何获得编译的 LESS 代码?