编译scss/sass报错invalid character解决方案

img

webstorm中编辑scss文件可以添加一个watcher实现实时的css编译输出预览功能,今日在配置webstorm环境的时候发现报了某个scss文件Invalid GBK character编译错误,指示的错误行数是一行中文注释。 此源文件的编码是UTF-8,工作区项目也是UTF-8的.

sass文件编译时候使用ruby环境,无论是界面化的koala工具还是命令行模式的都无法通过,真是令人烦恼。

容易出现中文注释时候无法编译通过,或者出现乱码,找了几天的解决方法终于解决了。

这个问题的奇葩之处在于在xp环境中没有任何问题,只是在windows7环境中才出现的这个。

sass编译时候出现如下错误的解决方法:

1
2
3
4
Syntax error: Invalid GBK character "\xE5"
on line 8 of E:\work\sass\sass\_big_box.scss
from line 16 of E:\work\sass\sass\main.scss
Use --trace for backtrace.

或者

1
2
3
Syntax error: Invalid GBK character "\xE5"
on line 2 of E:\work\sass\sass\main.scss
Use --trace for backtrace.

解决办法:

1.koala可视化编译工具

找到安装目录里面sass-3.3.7模块下面的engine.rb文件,例如下面路径:

C:\Program Files (x86)\Koala\rubygems\gems\sass-3.3.7\lib\sass

在这个文件里面engine.rb,添加一行代码

Encoding.default_external = Encoding.find(‘utf-8’) 放在所有的require XXXX 之后即可。

2.命令行工具同理

找到ruby的安装目录,里面也有sass模块,如这个路径:

C:\Ruby\lib\ruby\gems\1.9.1\gems\sass-3.3.14\lib\sass

在这个文件里面engine.rb,添加一行代码(同方法1)

Encoding.default_external = Encoding.find(‘utf-8’) 放在所有的require XXXX 之后即可。