Jeśli jesteś zainteresowany wskazaniem kodowania pliku w czytelny dla człowieka sposób, pomysł T.J. Crowder's (dodanie komentarza do pliku, takiego jak // Encoding: UTF-8
) jest właśnie tym. I jak wskazano Jukka K. Korpela, można również użyć BOM.
Ale jeśli chcesz drogę do odczytu maszynowego, aby wskazać zestaw znaków, który jest zadeklarowany w dokumencie istnieje kilka innych sposobów:
na przykład na serwer httpd Apache można użyć jednego z następujących deklaracji :
AddDefaultCharset UTF-8
AddCharset UTF-8 .js
AddType 'application/javascript; charset=UTF-8' js
*
* Nie jestem zainteresowany złożeniem sprawy dotyczącej używania "application/javascript"
przez "text/javascript"
. Ale jeśli chcesz wiedzieć, dlaczego jeden lub drugi może być lepszy, cf. https://stackoverflow.com/a/4101763/1070047. Biorąc pod uwagę ten temat, wydaje się całkiem odpowiedni (zwłaszcza jeśli zamierzasz użyć BOM, ponieważ wskazuje, że kod powinien być traktowany jako plik binarny).
Jeśli kod zostanie zinterpretowany/przetworzonych/skompilowany po stronie serwera (np PHP), można ustawić nagłówki w dokumencie, np ...
header("Content-Type: application/javascript; charset=utf-8");
przynajmniej w PHP, należy dodać, że nagłówek instrukcja przed każdym wyjściem.
Na koniec, przy ustalaniu, która deklaracja ma być używana, należy wziąć pod uwagę, że (gdy jest to zrozumiane/honorowane, tj. Nie w IE) specyfikacja materiałowa ma większe uprawnienia niż nagłówki dokumentów. Oba mają pierwszeństwo przed połączonymi/pochodzącymi deklaracjami zestawów znaków (np. <script type="application/javascript" src="script.js" charset="utf-8"></script>
).
Można również dołączyć zestawienie komponentów dla UTF-8, a przeglądarki go respektują. – Andrea
@Andrea: Nie wszystkie przeglądarki, niezawodnie. Ustawienie "zestawu znaków" odpowiedzi nie jest opcjonalne, odpowiedni dokument RFC wyraźnie stwierdza, że bez niego odpowiedź to US-ASCII. Zaledwie kilka tygodni temu było pytanie o to, IE interpretowało żądanie JSON-a w UTF-8, ale Firefox odniósł się do BOM, nazywając go nieprawidłowym JSON. –
@ T.J.Crowder Który odnośny dokument RFC? [Specyfikacja kodowania WHATWG mówi, że "znacznik kolejności bajtów (znany również jako BOM) jest bardziej autorytatywny niż cokolwiek innego"] (https://encoding.spec.whatwg.org/#specification-hooks).Oczywiście powinieneś dołączyć zestaw znaków = jeśli robisz to poprawnie. – Andrea