Voglio standardizzare su UTF8 sul nostro sito web. Tutti i nostri database e materiale Internet sono in UTF8. Tutti i nostri server Web inviano l'intestazione HTTP charset=utf-8
. Tuttavia, ho scoperto che modificando la codifica nel mio Firefox (Visualizza -> Codifica caratteri) a qualcos'altro, posso inserire un carattere di Latin-9 in un modulo e PHP li tratta semplicemente come UTF8 malformato.Posso forzare i browser Web a inviare il testo del modulo come UTF8?
Quanto mi devo preoccupare? È possibile che il browser Web dell'utente sostituisca l'intestazione del set di caratteri UTF8 e invii non UTF8?
Aggiornamento: Diverse persone hanno suggerito accept-charset
sui singoli moduli. Comunque preferirei non dover cambiare ogni modulo web. Supponendo che io possa controllare l'intestazione del tipo di contenuto HTTP, ed è impostata su UTF8, ho qualcosa di cui preoccuparmi?
"Tutti i nostri database e materiale Internet" - tutte le tue cose su Internet ci appartengono. –
Come per la risposta accettata a [questa domanda] (http://stackoverflow.com/questions/3719974/is-there-any-benefit-to-adding-accept-charset-utf-8-to-html-forms- if-the-page), 'accept-charset' risolverà il problema specifico che hai scoperto: cioè se l'utente dice al browser di interpretare la pagina come non UTF-8, 'accept-charset' dovrebbe far apparire il browser forma il contenuto come UTF-8 nonostante ciò.Vale la pena di aggiungere l'attributo a tutte le forme, a prescindere da quella particolare situazione, è il tuo giudizio. –
assicurati che la tua pagina sia veramente utf-8; nel browser debugger, cerca l'intestazione Content-Type che viene inviata. Inoltre, nella console JS, valutare document.charset; dovrebbe restituire l'ortografia di utf8. 'windows-1252' potrebbe significare che il browser non riconosce la codifica inviata. – OsamaBinLogin