Problema de inserat acentos en mysql

Iniciado por yoelrodguez, 23 Junio 2015, 17:13 PM

0 Miembros y 1 Visitante están viendo este tema.

moikano→@

Supongo que no filtras los datos. Pero estoy seguro de que el fallo no está en las collation.

Prueba con utf8_unicode_ci pero de todas formas debería de irte con spanish, prueba con el utf8_spanish2_ci también, pero es my raro, no creo que sea eso.
Cuando cambies asegurate de cambiar el campo, así seguro que se aplica esa collation.

Aparte de eso si no veo código poco puedo hacer ya.

Suerte.

yoelrodguez

En otras páginas que he visto en internet se dice que se pase el valor de la variable por utf8-encode pero cuando lo hago el contenido se me muestra mal.

moikano→@

Cita de: yoelrodguez en 23 Junio 2015, 18:02 PM
En otras páginas que he visto en internet se dice que se pase el valor de la variable por utf8-encode pero cuando lo hago el contenido se me muestra mal.
Si eso es porque se codifican los carácteres "extraños".

Una cosa, a veces me ha pasado, no muchas, que con problemas de carácteres ha resultado ser al final el fichero que lleva la programación, en este caso php, que lleva una codificacioón no completa. Hay programas para revisarlo, ahora mismo no se cual porque hace mucho tiempo que no me pasa. Pero puede que sea eso.

yoelrodguez

Este es el código del Insert.



function insert($descrip){
$sql ="INSERT INTO tabla (descrip) values '".$descrip."'";
$insertResult = mysql_query($sql) or die (mysql_error());
return $insertResult;
}


yoelrodguez

Lo que Ud. me dice que si es script esta en UTF-8 también.   

moikano→@

Has mirado la codificación de carácteres del fichero? Es decir, si el mismo fichero php está codificado en unicode, ascii,... en tu editor de textos puede que salga. Aunque también, cuando hay problemas en el fichero, se ve mal en el propio editor de texto.

Cita de: yoelrodguez en 23 Junio 2015, 18:15 PM
Lo que Ud. me dice que si es script esta en UTF-8 también.  

Exacto. Mira a ver si es eso.


Cita de: yoelrodguez en 23 Junio 2015, 18:12 PM
Este es el código del Insert.



function insert($descrip){
$sql ="INSERT INTO tabla (descrip) values '".$descrip."'";
$insertResult = mysql_query($sql) or die (mysql_error());
return $insertResult;
}



Ese código lo veo que no afecta. El resto ya no se si tendrá que ver con el el problema.


yoelrodguez

Revise lo que Ud. me dijo si esta en utf-8 solamente. 

yoelrodguez

Hice lo siguiente, pase el valor de la variable por utf8_encode que lo que me devuelve es un string. El cual se me imprime mal a la hora de mostrar el contenido de la variable pero continúe el proceso del insert, a ver si no se me cortaba en la base de datos.  Para mi sorpresa se me inserto bien, no se me corto el texto en la N como antes.

WHK

Ese no es problema de la base de datos, intenta hacer el insert y el select desde el terminal y verás que tengo razón ya que una base de datos utf8_* debería soportar caracteres especiales latinos.

Tu problema está en el script que muestra el valor que guardaste o el que guarda el valor escrito, recuerda que no basta solamente con tener un archivo con codificación utf8, es necesario establecer cabeceras de tipo header http y html. O si no puede ser que tu conexión a la base de datos no sea por defecto utf-8 (eso pasa cuando instalas distribuciones en español):

https://foro.elhacker.net/desarrollo_web/inquietud_por_que_utf8_no_exporta_tildes_y_iso88591_si-t420426.0.html;msg1962508#msg1962508