我在Windows XP上运行compass watch my_project
。
index.scss
:
@charset "UTF-8";
@import 'partial';
// ...
_partial.scss
:
p:before {
content: '•';
}
config.rb
:
encoding = "utf-8"
生成index.css
:
@charset "UTF-8";
/* line 1, ../sass/_partial.scss */
p:before {
content: 'ÔÇó';
}
// ...
如何让Compass / Sass将partial解释为UTF-8?在那儿
也许是我可以设置为更改默认值的环境变量
Ruby使用的字符编码(compass
是一个Ruby应用程序)?
答案 0 :(得分:5)
在我的Windows 7计算机上,它可以将以下行添加到我的项目config.rb
Encoding.default_external = 'utf-8'
还为罗盘/减少/ JS压缩找到了一个很棒的GUI:http://koala-app.com/
答案 1 :(得分:3)
也许这不是一个直接的答案,但即使你不能让Compass / Sass按你的意愿解释UTF,你也可以尝试使用unicode escape:
p:before {
content: "\2022";
}
其中2022是符号的十六进制代码。为了得到这个代码我在irb中执行了这个:
irb> "•"[0].ord.to_s(16)
=> "2022"
如果你有很多unicode字符,可能不是一个好的解决方案,但至少是一种解决方法。例如,FontAwesome在其stylesheets中使用它。
答案 2 :(得分:3)
除了@NIA建议的逃避角色(可预测,但乏味)之外,还有另外两种方法:
@charset "utf-8";
添加到_partial.scss 根据我到目前为止所读到的内容,这似乎是一个通用的Ruby / WIN问题,在构建从磁盘上的文件读取的字符串时,编码检测/回退不正确。