Problema al insertar caracteres especiales en MySql

vincen

Estoy teniendo problemas al insertar datos con caracteres especiales a mysql y no se si el fallo esta en la conf de mysql o al hacer el INTO

En mysql aparece

Cuando deberia estar asi:

No le habia dado importancia por que tenia una solución cutre con

  <meta charset="utf-8">

en la pagina donde queria mostrar la consulta

pero ahora quiero hacer un buscador y claro si buscas "Assassin's Creed™: Director's Cut Edition" y en la BD esta como "Assassin's Creedâ„¢: Director's Cut Edition" no hay forma de que la busqueda se complete correctamente.

Insert:


$sql = "insert into ".$table." (juego, bla1, bla2, bla3, bla4, bla5, bla6, bla7) values(";
$sql .= '"'.implode('","',$data).'")';

Le he puesto al PHP

header('Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7');

Pero no le afecta al insert

He probado la funcion mysql_real_escape_string

$data22 = mysql_real_escape_string($data); 

$sql = "insert into ".$table." (juego, bla1, bla2, bla3, bla4, bla5, bla6, bla7) values(";
$sql .= '"'.implode('","',$data22).'")';

Pero nada.. no se que mas probar, quiero arreglarlo sin tener que pasarme a MySQLi

RaymaN

¿La codificación de la tabla cuál es?

1 respuesta
vincen

#2 utf8_spanish_ci

1 respuesta
RaymaN

#3 quita ese header que has puesto en php y prueba esto tras conectar con la db mysql_set_charset('utf8')

2 respuestas
vincen

#4 Ya lo habia probado, me he mirado las 3 primeras paginas de google, lo he vuelto a probar por si las moscas pero nada.

txandy

#1 Tendrías que pasar a MySQLi si o si, ya que MySQL esta deprecrated y el codigo que estas generando no vas a poder reutilizarlo....

Si trabajas sobre windows, mira que todos los ficheros sean UTF-8 (por defecto muchos IDES, editores no te lo ponen), luego que la conexión a MySQL sea en UTF-8 como dice #4

1 respuesta
vincen

#6 Pff tocara cambiar a MySQLi

Voy a ponerme a buscar info a ver

Alv15

Prueba a poner el cotejamiento de la base de datos y el de las tablas como "utf8_general_ci".

Kiroushi

utf8_unicode_ci > utf8_general_ci

Ligeramente más lento en comparaciones, pero más exacto.

1 respuesta
vincen

#9 Gracias!

Ahora..

Edit: Resuelto! Gracias a todos

1 respuesta
Kiroushi

#10 Te sale mal en la representación fuera de la BDD?

1 respuesta
vincen

#11 Si tio, no me funciona lo de poner

  <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <meta charset="utf-8">


y

  mysqli_set_charset('utf8');
  header("Content-Type: text/html;charset=utf-8");

En la pagina donde muestro todos los juegos funciona todo okey, pero en el buscador no.

Sigo mirando el codigo a ver si me he saltado algo..

1 respuesta
Kiroushi

#12 Si estás usando archivos .php asegúrate de guardarlos con el encoding adecuado desde el editor de texto.

1 respuesta
vincen

#13 Si, el encode esta bien, esta en utf8

He probado a poner el texto directamente en el php y lo lee bien, he probado a copiar el codigo de buscar en una pagina que ya tiene llamadas a la sql y se ven bien las llamadas antiguas, pero las del resultado del codigo buscar no.

El error tiene que estar en el codigo de buscar..

Full codigo
1 respuesta
Kiroushi

#14 El problema de ahí lo tienes en la respuesta del servidor http.

Estás mandando un documento sin encoding explícito (puesto que no estás generando el html completo), y el servidor está enviando el documento con su encoding por defecto (que no será utf-8).

1 respuesta
vincen

#15 No, si le tengo puesto el html completo, lo que he probado es eso, pasar el codigo PHP a la web con todo el diseño y todo lo demás.

Tambien por si las moscas le he puesto al servidor el "AddDefaultCharset UTF-8" y he reiniciado.

1 respuesta
txandy

Prueba a guarrear con utf8_encode y utf8_decode...

MartiONE

#16 Tengo un programa que hace exactamente lo mismo que lo que tu estas buscando hacer (creo), el tema es que no buscaba, simplemente usaba la herramienta de buscar del explorador para ello (control+f) xD

vincen

Ale.. solucionado.

Lo he vuelto a pasar a mi preciada MySQL sin la i de los co***** xDDDD

Ya funciona correctamente con este code:

spoiler

Gracias a todos!

1 respuesta
Tunnecino

#19 Tu verás, pero estás usando un driver que está desactualizado y que luego la vas a pasar putas para migrar, pero bueno... veo que mezclas código y html todo junto, así que...

Nada, enhorabuena por haberlo hecho funcionar.

1

Usuarios habituales

  • Tunnecino
  • vincen
  • MartiONE
  • txandy
  • Kiroushi
  • Alv15
  • RaymaN