Charset con AJAX + PHP
Hola tengo un problema de codificacion de caracteres un tanto marciano.
Tengo un campo input con este texto: "Lista dos á ñ" (sin comillas). Se lo paso a un Ajax.Request que hace un POST con esto: "Lista%20dos%20%C3%A1%20%C3%B1".
El PHP recibe esto: "Lista dos á ñ", o sea, bien. Pero...
En la base de datos mete esto: "Lista dos á ñ". Y este es el problema.
Los documentos con el campo input, y el que hace el update tiene charset=utf-8, y la tabla de la BD también.
He probado a hacer escapes y unescapes, a codificarlo en charset=ISO-8859-1 uno si y otro no y toda su combinatoria, a esconder una piedra debajo de un botijo, me he encomendado todos los santos y a gran parte de sus muertos y ya desesperado os lo cuento a ver si hay alguien que le haya pasado esto.
Un saludo, Paulo.
dagi3d
la comprobación de lo que ha metido en la bd como lo estás haciendo? haciendo un query por consola o sacando los registros en otra web?
también puedas probar con la función ut8_encode para pasar de iso8859-1 a utf8 en caso de que los datos realmente le lleguen en iso
pac
La miro en la propia tabla de la BD, con Navicat.
He buscado y buscado y buscando... me he topado con esto:
http://blog.ketari.com/post/2005/11/17/problema-con-mysql-41-phpmyadmin-y-utf-8
que viene a decir que poniendo esto:
@mysql_query("SET NAMES 'utf8'");
se arregla el tinglado. Muy técnico todo 8-).
Gracias por el interés. Un saludo.