Buenos días.
Estoy teniendo dificultades con la codificación de caracteres en una instalación nueva de G3 (versión 3.21.2). Todos los mensajes que envía el sistema salen mal codificados (por ej. el mensaje para restablecer contraseña).
Como supongo que es un problema de locales, instalé dos servidores diferentes para hacer pruebas (uno con la BD en UTF-8 y el otro con la BD en ISO-8859-1). En ambos casos tengo el mismo problema.
Si hago una consulta en desarrollo.apex_msg los datos están correctos.
Si cambio la codificación de caracteres en el archivo bases.ini de LATIN1 a UTF-8 soluciono el problema de los mensajes pero el problema de codificación se traslada a la interfase.
Anteriormente había instalado una versión 3.20 para hacer pruebas en un servidor que corría Slackware64 y no recuerdo haber tenido estos problemas. Actualmente estoy corriendo Debian 11 (por ser la distribución en la que está basada la documentación de instalación).
Necesito ayuda con esto por favor.
Hola Leonel.
Ante todo gracias por tu respuesta.
Como comenté antes tengo dos instalaciones.
En una de ellas la codificación es es_AR.UTF-8 y en la otra es_AR.iso88591 (o sea LATIN1 según pide el instructivo).
Las directivas en ambos casos en los archivos php.ini (/etc/php/7.4/cli y /etc/php/7.4/apache2) están correctas. También probé de usar UTF8 (para evacuar dudas y -obviamente- el problema persiste).
Si lo hiciste desde Gestión operación Recuperar contraseña el CharSet de PHPMailer se setea en UTF-8.
¿que te devuelve la siguiente query? ¿se ve bien el mensaje?
SELECT COALESCE(apex_msg.mensaje_customizable, apex_msg.mensaje_a) as mensaje, msg_tipo as tipo
FROM desarrollo.apex_msg
WHERE UPPER(trim(apex_msg.indice)) = UPPER('800_email_recuperar_contrasenia_cuerpo')
AND apex_msg.proyecto = 'guarani';
En instalacion/bases.ini es encoding = “LATIN1” , en Autogestión no lo solemos configurar en instalacion/config.php.
En el Toba Editor tenes el logo de PHP a la derecha, si le haces click carga el phpinfo, revisa que las directivas estén bien.
Buenos días Leonel.
Todas las configuraciones están revisadas tal cual el instructivo (varias veces de hecho).
PHPMailer nunca se tocó. Tal como comenté en el primer post, si cambio la codificación de la base toba en el archivo bases.ini el problema de los mails se resuelve inmediatamente… entiendo que si fuera un problema de PHPMailer la falla persistiría en cualquier caso.
Sigo sin saber qué tocar.
Del mismo modo, tal como aclaré en el primer post, la codificación de los caracteres de la table apex_msg es correcta. Para estar seguro de ello inserté un registro nuevo en esa tabla y, cuando se envía el mail, el mensaje se presenta mal codificado. Cuando hago la consulta por fuera de sistema los datos se presentan bien.
Leonel, los 4 hilos que me pasaste refieren al mismo problema. No es mi caso. Como te comenté, la codificación en el servidor está correcta,
Podés ver la info de PHP completa (incluídos los módulos) en http://g3testing.ucel.edu.ar
En http://g3testing.edu.ar/guarani/3.21 está apuntado el directorio raíz de Guaraní.
Leonel, las minúsculas en la codificación no inciden (anteriormente estaban en mayúsculas y las cambié a minúsculas para descartar que no fuera ese el problema). La codificación del clúster es correcta (fijate en el segundo post que te pasé las capturas de ambos servidores que tengo corriendo con seteos diferentes, uno en LATIN1 y el otro en UTF-8).
El tema del timezone que no estaba configurado en el php.ini del cliente ya está corregido.
Sigue igual.
Pregunta, ¿esto te pasa solo al enviar emails o en todas las operaciones?
¿solo te pasa en Gestión, o también te pasa en Autogestión y Preinscripción?
En la función configurar_smtp de php/nucleo/_lib/mensajes/mail_job_nucleo.php proba cambiar $mail->CharSet = static::CHARSET_UTF_8; por $mail->CharSet = ‘ISO-8859-1’;, seria acá. Igualmente con UTF-8 debería funcionar bien con los acentos del español.
Buen día Leonel.
¡¡¡Exito total!!!
Efectivamente cambiando el charset a ISO-8859-1 en la función hizo el truco.
Lo que no entiendo es por qué si el charset de la clase está definido en UTF-8 no lo hereda de forma correcta.
Espero no tener problemas a futuro con este tema.
El servidor es de gestión. Todavía no instalé autogestión.