Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: cefer en 9 Mayo 2023, 00:13 am



Título: Problema con set de caracteres guardados en mysql
Publicado por: cefer en 9 Mayo 2023, 00:13 am
PC con ubuntu 20.04
Ahi hay un web server con apache, mysql y php
Estos no son instalados de repositorio, sino que es XAMPP bajado de https://www.apachefriends.org/
Esto, al instalarse queda todo en la carpeta /opt/lampp
Tambien las las bases de datos mysql estan dentro de esta carpeta
En otra carpeta www esta el "website"

Este ubuntu tuvo un problema: Luego de un update kswapd usaba todo el cpu y quedaba siempre accediendo al disco
Por esto decidi tomar otro disco e instalar algo mas nuevo
Baje debian 12 y lo instale

Luego de instalar el linux, simplemente copie (tal como estaban) la carpeta /opt/lampp y la carpeta www

Luego de la instalacion verifique el archivo /etc/default/locale

LANG="es_UY.UTF-8"
LANGUAGE="es_UY:es"

el cual esta igual que en el disco anterior con ubuntu

El problema es que ahora que el nuevo servidor web con debian esta funcionando, cuando accedo desde otro PC "cliente",
y la pagina web me muestra datos que estan guardados en la base de datos mysql, por ejemplo el titulo de un producto o la palabra dólar
en lugar de las letras con acentos o donde deberian aparecer las letras ñ o Ñ, aparece un signo de interrogación

Ideas?

Gracias
Cesar


Título: Re: Problema con set de caracteres guardados en mysql
Publicado por: cefer en 9 Mayo 2023, 14:16 pm
El problema fue solucionado.
El archivo my.cnf no era tenido en cuenta por mysql debido a que tenia permisos 777 y debia ser 600



Título: Re: Problema con set de caracteres guardados en mysql
Publicado por: GerardoMunoz en 11 Mayo 2023, 22:25 pm
El problema que estás experimentando parece ser un problema de codificación de caracteres. La configuración de la codificación de caracteres en el servidor web y en la base de datos puede ser diferente a la configuración que se está utilizando en los clientes que acceden a la página web. A continuación, te sugiero algunas soluciones para solucionar el problema:

Asegúrate de que la codificación de caracteres en el servidor web y en la base de datos sea la misma que la que se está utilizando en los clientes que acceden a la página web. Por ejemplo, si los clientes están utilizando la codificación UTF-8, asegúrate de que tanto el servidor web como la base de datos estén configurados para utilizar UTF-8.

Si la solución anterior no funciona, intenta establecer la codificación de caracteres en la página web utilizando la etiqueta meta. En el encabezado de la página, agrega la siguiente línea:

<meta charset="UTF-8">
Esto establece la codificación de caracteres de la página en UTF-8. Si se está utilizando una codificación de caracteres diferente, reemplaza "UTF-8" con la codificación de caracteres que se está utilizando.

Si ninguna de las soluciones anteriores funciona, también puedes intentar configurar la codificación de caracteres en la conexión a la base de datos utilizando el método "set_charset" de la clase mysqli de PHP. Por ejemplo, si estás utilizando la clase mysqli para conectarte a la base de datos, agrega la siguiente línea de código después de crear la conexión:

$conexion->set_charset("utf8");

Esto establece la codificación de caracteres de la conexión a la base de datos en UTF-8. Si se está utilizando una codificación de caracteres diferente, reemplaza "utf8" con la codificación de caracteres que se está utilizando.

Espero que alguna de estas soluciones te ayude a solucionar el problema de codificación de caracteres que estás experimentando.