utilizzarePerché Sass antepone una regola @charset errata?
sass --watch scss:css
avere Sass creare automaticamente file CSS (e metterli nella directory /css
) per ciascun file SCSS (dalla mia directory /scss
).
Nel mio file SCSS ho questo:
.foo::before {
content: "▶";
}
quando prova la pagina web nel browser, che "giocare" il carattere non viene visualizzato - invece vedo un mucchio di lettere strane con carons e altri accenti.
ho ispezionato il file CSS generato e notato questo nella prima riga:
@charset "CP852";
Ho poi cambiato manualmente che a questo:
@charset "UTF-8";
che ha portato nel mio pulsante "Play" viene eseguito il rendering correttamente.
Ora, perché Sass imposta il set di caratteri su "CP852"
? Sto scrivendo il file SCSS in PhpStorm che segnala che il file SCSS è effettivamente codificato in UTF-8 (lo vedo nella barra di stato di PhpStorm).
Cosa succede se si utilizza la notazione in escape: '\ 25B6'? – Knu
+1 Wow! Non avevo idea che 'content:" \ 25B6 "' funzioni. ':)' Tuttavia, la domanda è perché SASS imposta un set di caratteri errato, quindi non posso accettare questa risposta. –
Inoltre, usare la notazione di escape non è una buona scelta perché stai vedendo una visualizzazione di caratteri errata A CAUSA del set di caratteri errato, il che significa che non hai risolto questo problema per tutti gli altri caratteri nel set di caratteri errato che è potenzialmente un problema ENORME quando si tratta di localizzazione. Meglio correggere questo problema all'origine piuttosto che hackerarlo: definizione charset esplicita per la risposta esclusa. – dudewad