W języku HTML element script ma opcjonalny atrybut charset.Jaki jest cel atrybutu charset elementu script w HTML?
Jaki jest tego cel?
Kiedy to jest przydatne?
W języku HTML element script ma opcjonalny atrybut charset.Jaki jest cel atrybutu charset elementu script w HTML?
Jaki jest tego cel?
Kiedy to jest przydatne?
Jeśli twoje pliki javascript są zakodowane za pomocą innego kodowania niż strona, możesz użyć atrybutu charset
, aby poinformować przeglądarkę, jak je interpretować.
Na przykład, jeśli strona używa Latin1
, ale plik JS został utworzony za pomocą UTF-8
.
Każdy plik JavaScript jest oddzielnym elementem strony, po tym wszystkim można załadować JS z jakiegoś zdalnego serwera autora, który w przeciwnym razie nie ma żadnych relacji z twoją stroną. Podobnie jak w przypadku każdego innego elementu zewnętrznego, możesz ręcznie określić "zestaw znaków", jeśli zdalny serwer zwróci zły zestaw znaków z jakiegoś powodu lub po prostu dla pewności.
Jeśli masz dostęp do pliku JS do zapisu, możesz zamienić wszystkie znaki spoza ASCII na znaki ucieczki w standardzie Unicode - to zagwarantuje, że symbole będą zawsze interpretowane poprawnie, bez względu na to, jakie kodowanie zostało określone w nagłówkach . Niektóre minizestawy JS, takie jak Google Closure Compiler, mogą zrobić to automatycznie.
Co jest priorytetem? 'script charset' lub zestaw znaków nagłówka dołączonego pliku js? – Pacerier
Celem parametru charset
jest określenie kodowania skryptu zewnętrznego w przypadkach, gdy kodowanie nie jest określone na poziomie protokołu HTTP. Jest to , a nie przeznaczone do przesłonięcia informacji o kodowaniu w nagłówkach HTTP, a tego nie robi.
Jest to przydatne, gdy autor nie może sterować nagłówkami HTTP, a nagłówki nie określają kodowania znaków. Jest także przydatny w przypadku plików offline, na przykład w lokalnej kopii strony internetowej, do której można uzyskać bezpośredni dostęp, a nie za pośrednictwem serwera HTTP, więc nie istnieją nagłówki HTTP.
W praktyce nie jest zbyt przydatna. Jeśli chcesz użyć znaków spoza ASCII w pliku JavaScript, możesz użyć kodowania UTF-8. Jeśli używasz UTF-8 z wiodącą specyfikacją materiałową, BOM działa jako przydatny wskaźnik, który pozwala przeglądarce na wnioskowanie o kodowaniu. Ale nie zaszkodzi dodatkowo użyć charset=utf-8
.
Czy jesteś pewien, że zestaw znaków podany w nagłówku załączonego pliku JS ma wyższy priorytet niż jawny zestaw znaków określony na stronie głównej html?Czy to roszczenie zostało przetestowane w rzeczywistych przeglądarkach ** na wolności **? – Pacerier
Tak, przetestowany w Firefox, Chrome, IE (Win 7). Strona testowa: http://www.cs.tut.fi/~jkorpela/test/js/demo.html –
Chociaż wydaje mi się, że lepiej jest umieścić kodowanie w nagłówku odpowiedzi, która zwraca skrypt. – GolezTrol
@GolezTrol - Powinien być lepszy, ale nie wszyscy autorzy stron mają taką kontrolę nad nagłówkami. – Oded
Jeśli strona używa innego kodowania (w moim przypadku, euc-kr), a JS używa UTF8, część tekstu napisana przez wywołanie document.write() lub ustawienie innerHTML jakiegoś elementu będzie poprawnie zakodowane w kodowaniu (euc -kr) nie ma UTF8? –