为什么Sass会添加不正确的@charset规则?

时间:2012-04-28 12:31:54

标签: css character-encoding sass phpstorm

我用

sass --watch scss:css

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

在我的SCSS文件中,我有这个:

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

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

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

@charset "CP852";

然后我手动将其更改为:

@charset "UTF-8";

导致我的“播放”按钮被正确呈现。

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

2 个答案:

答案 0 :(得分:30)

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

答案 1 :(得分:5)

就像@ Alireza-Fatahi在this answer中说的那样,您可以在CSS输出中保存一行,而是在外部文件上使用默认字符集,方法是将此行添加到 config.rb < / strong>在项目文件夹中:

Encoding.default_external = "UTF-8"