如何从CSS中删除不需要的@charset"UTF-8"(编译SASS文件后显示)

And*_*iez 8 encoding compilation sass character-encoding

我们问题的快速摘要:

  • 我们在编译的CSS文件前面加了一个@charset声明
  • 我们的SCSS文件没有此声明,因此在编译期间会添加它
  • 我的一位同事说,如果我们有这个声明,我们的网站会在Safari中断

SASS文档说:

输出编码

通常,Sass将尝试使用与输入样式表相同的编码对输出样式表进行编码.但是,为了使它能够执行此操作,输入样式表必须具有@charset声明; 否则,Sass将默认将输出样式表编码为UTF-8.此外,如果它不是纯ASCII,它将在输出中添加@charset声明.

当带有@charset声明的其他样式表是@imported时,Sass会将它们转换为与主样式表相同的编码.

资料来源:http://sass-lang.com/documentation/file.SASS_REFERENCE.html

有没有人知道防止SASS添加它的方法?
有谁知道我们如何检查所有SCSS文件中的"如果它不是纯ASCII"假设?
还有其他想法吗?

谢谢!

Bas*_*sen 3

据我所知,它对@charset所有浏览器都有很好的支持,另请参阅: https: //developer.mozilla.org/en-US/docs/Web/CSS/@charset。只能找到“旧”问题,只有在@charsetCSS 文件开头未声明 时才会发生这种情况。另请参阅: https: //github.com/Compass/compass/issues/211

当您使用 grunt 编译 SASS 文件时,您可以在编译任务之后运行一个附加任务,以删除 @charset 声明。https://github.com/erickrdch/grunt-string-replace可以帮你替换。