używamDlaczego Sass stosuje niepoprawną regułę @charset?
sass --watch scss:css
mieć Sass automatycznie tworzyć pliki CSS (i umieścić je w katalogu /css
) dla każdego pliku SCSS (z mojego katalogu /scss
).
W moim pliku SCSS mam to:
.foo::before {
content: "▶";
}
Kiedy przetestować stronę internetową w przeglądarce, że „grać” charakter nie jest wyświetlany - zamiast widzę kilka dziwnych listów z carons i inne akcenty.
I kontrolowane wygenerowany plik CSS i zauważyłem, to w pierwszej linii:
@charset "CP852";
Następnie ręcznie zmienił że do tego:
@charset "UTF-8";
co spowodowało mój przycisk "Play" są renderowane prawidłowo.
Dlaczego Sass ustawia zestaw znaków na "CP852"
? Piszę plik SCSS w PhpStorm, który zgłasza, że plik SCSS rzeczywiście jest zakodowany w UTF-8 (widzę to na pasku stanu PhpStorm).
Co się stanie, jeśli użyjesz jego notacji z uniknięciem: '\ 25B6'? – Knu
+1 Wow! Nie miałem pojęcia, że "content:" \ 25B6 "' działa. ':)' Jednak pytanie brzmi, dlaczego SASS ustawia niepoprawny zestaw znaków, więc nie mogę przyjąć tej odpowiedzi. –
Używanie notacji z unikami NIE jest dobrym wyborem, ponieważ wyświetlany jest niepoprawny znak WYŚWIETLANY ZŁEGO zestawu znaków, co oznacza, że nie rozwiązałeś tego problemu dla wszystkich innych znaków w niepoprawnym zestawie znaków, który jest potencjalnie OGROMNYM problemem, gdy dochodzi do lokalizacji. Lepiej rozwiązać ten problem u źródła, zamiast go hakować: definicja jawnego zestawu znaków dla odpowiedzi wyjątkowej. – dudewad