Quiero estandarizar en UTF8 en nuestro sitio web. Todas nuestras bases de datos y material de Internet están en UTF8. Todos nuestros servidores web están enviando el encabezado HTTP charset=utf-8
. Sin embargo, he descubierto que al cambiar la codificación en mi Firefox (Ver -> Codificación de caracteres) a otra cosa, puedo ingresar un carácter Latin-9 en una forma y PHP simplemente los trata como UTF8 malformados.¿Puedo obligar a los navegadores web a enviar texto de formulario como UTF8?
¿Cuánto tengo que preocuparme por eso? ¿Es posible que el navegador web del usuario sobrescriba el encabezado de conjunto de caracteres UTF8 y envíe mensajes que no sean UTF8?
Actualización: Varias personas han sugerido accept-charset
en los formularios individuales. Sin embargo, preferiría no tener que cambiar cada formulario web. Asumiendo que puedo controlar el encabezado de tipo de contenido HTTP, y está configurado en UTF8, ¿tengo algo de qué preocuparme?
"Todas nuestras bases de datos y material de internet": todas sus cosas en Internet son propiedad nuestra. –
Según la respuesta aceptada a [esta pregunta] (http://stackoverflow.com/questions/3719974/is-here-any-benefit-to-adding-accept-charset-utf-8-to-html-forms- if-the-page), 'accept-charset' resolverá el problema específico que ha descubierto: es decir, si el usuario le dice a su navegador que interprete la página como no UTF-8,' accept-charset' debe hacer que el navegador envíe formar contenido como UTF-8 a pesar de eso.Si vale la pena agregar el atributo a todas sus formas para protegerse de esa situación en particular, esa es su decisión. –
asegúrate de que tu página sea realmente utf-8; en el depurador del navegador, busque el encabezado Content-Type que se envía. Además, en la consola JS, evalúa document.charset; debería devolver algo de ortografía de utf8. 'windows-1252' puede significar que el navegador no reconoce la codificación enviada. – OsamaBinLogin