1

私はcompass watch my_projectWindowsXPで実行しています。

  • 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にパーシャルをUTF-8として解釈させるにはどうすればよいですか?compassRuby( Rubyアプリ)で使用されるデフォルトの文字エンコードを変更するために設定できる環境変数はありますか?

4

3 に答える 3

5

私の Windows 7 マシンでは、次の行をプロジェクトのconfig.rb

Encoding.default_external = 'utf-8'

また、コンパス/レス/JS 圧縮用の優れた GUI も見つかりました: http://koala-app.com/

于 2014-04-28T10:25:32.790 に答える
3

直接的な答えではないかもしれませんが、Compass / SassにUTFを希望どおりに解釈させることができない場合でも、Unicodeエスケープを使用してみてください。

p:before {
    content: "\2022";
}

ここで、2022はシンボルの16進コードです。このコードを取得するために、irbでこれを実行しました。

irb> "•"[0].ord.to_s(16)
=> "2022"

ユニコード文字がたくさんある場合はおそらく良い解決策ではありませんが、少なくとも回避策があります。たとえば、FontAwesomeはスタイルシートでそれを使用します。

于 2013-01-24T12:25:54.847 に答える
3

@NIAで提案されているように、文字をエスケープする(予測可能ですが、面倒です)以外に、これを回避する方法が他に2つあります。

  1. @charset "utf-8";_partial.scss の先頭に追加
  2. _partial.scss を「UTF-8 with BOM」として保存します。

私がこれまでに読んだことから判断すると、これは、ディスク上のファイルから読み取った文字列を構築するときに、誤ったエンコーディング検出/フォールバックを伴う一般的な Ruby/WIN の問題のようです。

于 2014-09-02T09:26:39.407 に答える