为什么Sass会添加错误的@charset规则?

我用

sass --watch scss:css

让Sass /css为每个SCSS文件自动创建CSS文件(并将它们放在目录中)(来自我的/scss目录)。

在我的SCSS文件中,我有以下内容:

.foo::before {
    content: "▶";
}

当我在浏览器中测试网页时,不会显示“播放”字符-而是看到一堆带有纸箱和其他重音的怪异字母。

我检查了生成的CSS文件,并在第一行中注意到了这一点:

@charset "CP852";

然后,我手动将其更改为:

@charset "UTF-8";

导致我的“播放”按钮被正确渲染。

现在,Sass为什么将字符集设置为"CP852"我正在PhpStorm中编写SCSS文件,该文件报告SCSS文件确实是UTF-8编码的(我在PhpStorm的状态栏中看到了该文件)。

小胖Gil2020/03/27 20:10:58

就像此答案中的 @ Alireza-Fatahi所述,您可以在CSS输出中保存一行,而在外部文件中添加默认字符集,方法是config.rb在项目文件夹中添加以下行

Encoding.default_external = "UTF-8"
2020/03/27 20:10:58

尝试添加@charset "UTF-8";到原始SCSS文件中,SASS不应覆盖它/然后添加它自己的文件。