Vraag Waarom voegt Sass een onjuiste @charset-regel toe?


ik gebruik

sass --watch scss:css

om Sass automatisch CSS-bestanden te laten maken (en deze in de /css map) voor elk SCSS-bestand (van mijn /scss directory).

In mijn SCSS-bestand heb ik dit:

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

Wanneer ik de webpagina in de browser test, wordt dat "speel" -teken niet weergegeven - in plaats daarvan zie ik een stel vreemde letters met liefdadigheidsinstellingen en andere accenten.

Ik inspecteerde het gegenereerde CSS-bestand en merkte dit op in de eerste regel:

@charset "CP852";

Vervolgens heb ik dat handmatig aangepast:

@charset "UTF-8";

waardoor mijn "play" -knop correct werd weergegeven.

Waarom stelt Sass de tekenset in? "CP852"? Ik schrijf het SCSS-bestand in PhpStorm dat meldt dat het SCSS-bestand inderdaad UTF-8-gecodeerd is (ik zie dat in de statusbalk van PhpStorm).


14
2018-04-28 12:31


oorsprong


antwoorden:


Probeer toe te voegen @charset "UTF-8"; naar uw originele SCSS-bestand, zou SASS dit niet moeten overschrijven / toevoegen.


30
2018-05-15 01:46



Zoals @ Alireza-Fatahi verklaart in dit antwoord, je zou een regel kunnen opslaan in CSS-uitvoer en in plaats daarvan gaan voor een standaard Charset op externe bestanden, door deze regel toe te voegen aan je config.rb in je projectmap:

Encoding.default_external = "UTF-8"

5
2018-06-17 18:32