Se sei interessato a indicare la codifica del file in un modo leggibile dall'uomo, l'idea di T.J. Crowder's (aggiungendo un commento al file come // Encoding: UTF-8
) è la cosa giusta. E come sottolineato da Jukka K. Korpela, è possibile utilizzare anche il BOM.
Ma se volete un modo leggibile dalla macchina per indicare charset che è dichiarato nel documento ci sono un paio di altri modi:
Ad esempio, su un server httpd Apache si potrebbe utilizzare una delle seguenti dichiarazioni :
AddDefaultCharset UTF-8
AddCharset UTF-8 .js
AddType 'application/javascript; charset=UTF-8' js
*
* Non sono interessato a utilizzare il "application/javascript"
su "text/javascript"
. Ma se sei interessato a sapere perché l'uno o l'altro potrebbe essere preferibile, cf. https://stackoverflow.com/a/4101763/1070047. Considerato l'argomento, tuttavia, application/javascript
sembra abbastanza appropriato (specialmente se si intende utilizzare un BOM, poiché indica che il codice deve essere trattato come un file binario).
Se sarà interpretato il codice/elaborato/compilato lato server (ad esempio PHP), è possibile impostare le intestazioni nel documento, ad esempio ...
header("Content-Type: application/javascript; charset=utf-8");
almeno all'interno di PHP, assicurarsi di aggiungere che di testa dichiarazione prima che l'uscita abbia luogo.
Infine, quando si determina quale dichiarazione utilizzare, si consideri che (quando è compreso/onorato, cioè non in IE) la distinta base ha maggiore autorità delle intestazioni dei documenti. Entrambi hanno la precedenza sulle dichiarazioni del set di caratteri collegati/originati (come <script type="application/javascript" src="script.js" charset="utf-8"></script>
).
fonte
2014-05-21 16:14:22
È anche possibile includere una distinta base per UTF-8 e i browser lo rispettano. – Andrea
@Andrea: non tutti i browser, non in modo affidabile. L'impostazione del 'charset' della risposta non è facoltativa, la RFC in questione dice chiaramente che senza uno, la risposta è US-ASCII. Solo un paio di settimane fa c'era una domanda al riguardo, IE stava interpretando un JSON richiesto da jax in UTF-8 ma Firefox stava eseguendo il balking sul BOM, chiamandolo JSON non valido. –
@ T.J.Crowder Quale RFC rilevante? [Le specifiche di codifica di WHATWG dicono che "il byte order mark (anche noto come BOM) è più autorevole di qualsiasi altra cosa"] (https://encoding.spec.whatwg.org/#specification-hooks).Naturalmente, dovresti includere un set di caratteri = se fai le cose correttamente. – Andrea