2012-04-28 15 views
13

मैंसास गलत @ चार्जसेट नियम क्यों प्रस्तुत करता है?

sass --watch scss:css 

का उपयोग सास स्वचालित रूप से सीएसएस फ़ाइलें बना है (और /css निर्देशिका में डाल) (मेरी /scss निर्देशिका से) प्रत्येक एससीएसएस फ़ाइल के लिए करने के लिए।

मेरी एससीएसएस फ़ाइल में मैं इस है:

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

जब मैं ब्राउज़र में वेब पेज का परीक्षण, कि "प्ले" चरित्र प्रदर्शित नहीं किया जाता है - इसके बजाय मैं carons और अन्य के साथ अजीब पत्र के एक झुंड को देखने के लहजे।

मैं उत्पन्न सीएसएस फ़ाइल का निरीक्षण किया और पहली पंक्ति में इस पर ध्यान:

@charset "CP852"; 

मैं तो मैन्युअल रूप से बदल गया है कि इस के लिए:

@charset "UTF-8"; 

जो में हुई मेरी "चलाएं" बटन गाया जा रहा है सही ढंग से।

अब, सैस ने वर्णमाला को "CP852" पर क्यों सेट किया है? मैं phpStorm में एससीएसएस फ़ाइल लिख रहा हूं जो रिपोर्ट करता है कि एससीएसएस फ़ाइल वास्तव में यूटीएफ -8 एन्कोडेड है (मुझे लगता है कि PhpStorm की स्टेटस बार में)।

+2

यदि आप अपने बच निकले नोटेशन का उपयोग करते हैं तो क्या होता है: '\ 25B6'? – Knu

+0

+1 वाह! मुझे नहीं पता था कि 'सामग्री: "\ 25B6" 'काम करता है। ':) हालांकि, सवाल यह है कि SASS एक गलत वर्णसेट क्यों सेट करता है, इसलिए मैं इस उत्तर को स्वीकार नहीं कर सकता। –

+0

इसके अलावा, बच निकले नोटेशन का उपयोग करना एक अच्छा विकल्प नहीं है क्योंकि आप खराब वर्ण प्रदर्शन के कारण गलत चरित्र प्रदर्शन देख रहे हैं, जिसका अर्थ है कि आपने गलत समस्या के अन्य सभी पात्रों के लिए इस समस्या को हल नहीं किया है जो संभावित रूप से एक बड़ी समस्या है यह स्थानीयकरण की बात आती है। इसे हल करने के बजाय स्रोत पर इस समस्या को बेहतर ढंग से ठीक करें: छोड़े गए उत्तर के अनुसार स्पष्ट वर्णमाला परिभाषा। – dudewad

उत्तर

30

अपनी मूल एससीएसएस फ़ाइल में @charset "UTF-8"; जोड़ने का प्रयास करें, SASS को इसे ओवरराइड नहीं करना चाहिए/फिर अपना स्वयं का जोड़ना नहीं चाहिए।

+4

ऐसा लगता है कि स्टाइल शीट की पहली पंक्ति में '@charset" UTF-8 "होना चाहिए। – feklee

+5

[SASS_REFERENCE] से उद्धरण (http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#options): * @charset "एन्कोडिंग-नाम" जोड़ें; स्टाइलशीट की शुरुआत में (किसी भी सफेद जगह या टिप्पणियों से पहले) और सास इसे दिए गए एन्कोडिंग के रूप में व्याख्या करेगा। * – feklee

+0

यह मेरा मुद्दा भी था, मेरे ऊपर एक टिप्पणी थी। इसे पहली पंक्ति में रखकर इसे ठीक किया, चीयर्स। – ConorLuddy

5
तरह

@ एलिरेज़ा-Fatahi this answer में कहा गया है, तो आप, बाह्य फ़ाइलों पर सीएसएस उत्पादन में एक पंक्ति को बचाने और वर्णसेट बजाय एक डिफ़ॉल्ट के लिए जा सकते हैं अपनी परियोजना फ़ोल्डर में अपने config.rb को यह पंक्ति जोड़कर:

Encoding.default_external = "UTF-8" 
संबंधित मुद्दे