Hola!
Tenemos un problema en nuestro ambiente productivo de que algunos tildes se ven mal (no todos, sino en particular los que provienen de scripts de javascript). No nos pasa en nuestro ambiente de desarrollo con el mismo código.
Revisamos los php.ini y tienen definidos correctamente el default_charset en “ISO-8859-1”.
Lo que notamos en las devtools del navegador es que en la instancia de producción los scripts de javascript se están añadiendo en el head con charset=“utf-8” mientras que en el ambiente de pruebas si tienen charset=“iso-8859-1”.
Alguna idea de que configuración podría estar ocasionando esto?
Saludos
Buen día Gonzalo,
Nos podrías decir en la versión que se encuentran, en el siguiente foro, se trata un tema similar fijate si eso que se menciona puede ser de ayuda.
Saludos
Hola, estamos en la versión 3.20.
Revisé ese foro y otros similares pero no estamos pudiendo resolver el problema, en general los caracteres especiales se están viendo correctamente excepto algunos, en particular los que provienen de archivos .js (por ejemplo las tildes de los días de la semana en el calendario de la página de inicio de los alumnos). Por eso notamos en las devtools que se están importando todos los archivos js en el head con el charset incorrecto <style class="lazyload" charset="utf-8">
No estamos encontrando en que lugar se define el charset con el que se importan los scripts
Hola @gonzalo.monasterio
¿En instalacion/config.php tenes configurado ‘barra_dev’ => false?
Puede ser que sea el error que se soluciona en el ticket #47585, en este foro podes ver la solución.
Saludos.
Hola, si, en producción está ‘barra_dev’ => false.
Hice el cambio del foro pero no se solucionó, en particular se sigue importando “notificaciones.js” con charset utf-8
¿ese archivo notifications.js de donde lo sacas, no lo encuentro en el código? Si lo agregaste personalizando vas a tener que agregarle el charset
, ej:
<script type='text/javascript' src="notifications.js" charset="{{encoding}}"></script>
En caso de estar en modo producción puede ser la cache de Twig que ese molestando, volve a ejecutar bin/guarani compilar_recursos
o elimina el contenido dentro de instalacion/temp/des01/
. Luego proba en una ventana incongnita o sino hace un “hard refresh” (Ctrl + F5).
Saludos.
Mm no es personalizado, en realidad el archivo es “notificaciones.js” no “notifications.js” (ahí lo corregí). Es parte del pagelet_notificaciones. Un caso donde se ven mal las tildes es en el calendario de inicio alumno, adjunto imagen:
No así en otras partes de la aplicación. El problema parece ser que algunos archivos de javascript se están importando con el charset utf-8, mientras que en el ambiente de pruebas se importan correctamente
En src/siu/bootstrap.php debería decir kernel::proyecto()->set_encoding('iso-8859-1');
, también revisa Requisitos previos para la instalación en Linux – Distribuciones Debian o derivados esta parte:
default_charset = "ISO-8859-1"
mbstring.internal_encoding = "ISO-8859-1"
Saludos.
Si, todo eso está bien, es muy raro
Hola @gonzalo.monasterio
Proba lo de este foro sobre el archivo src/siu/www/js/notificaciones.js:
file -i src/guarani/3w/src/siu/www/js/notificaciones.js
src/siu/www/js/notificaciones.js: text/plain; charset=iso-8859-1
Si no devuelve charset=iso-8859-1
vas a tener que cambiarlo usando el comando iconv.
¿tenes cambios locales en src/siu/www/js/notificaciones.js?, podes verlos ejecutando svn diff src/siu/www/js/notificaciones.js
y los revertís con svn revert src/siu/www/js/notificaciones.js
.
¿En el HTML se carga de la siguiente manera o esta mal el charset?
<script src="/siu/guarani/3w/js/notificaciones.js" class="lazyload" charset="iso-8859-1"></script>
Saludos.
Si, eso devuelve correctamente:
src/siu/www/js/notificaciones.js: text/plain; charset=iso-8859-1
y no tenemos modificaciones locales.
En el html los scripts están agregados con el charset incorrecto “utf-8” por eso creo que debe ser algo de configuración
<script src="/siu/operaciones/inicio_alumno/lista_carreras/pagelet_lista_carreras.js" class="lazyload" charset="utf-8"></script>
<script src="/siu/operaciones/_comun/pagelets/notificaciones/pagelet_notificaciones.js" class="lazyload" charset="utf-8"></script>
<script src="/siu/js/notificaciones.js" class="lazyload" charset="utf-8"></script>
En nuestro ambiente de desarrollo con la misma versión del repositorio no tenemos este problema, los scripts están con “iso-8859-1”
Revisa lo siguiente:
-
En instalacion/alias.conf deberias tener
AddDefaultCharset ISO-8859-1
. -
¿que te devuelve
kernel::proyecto()->get_encoding()
debería devolveriso-8859-1
? -
Revisa en src/siu/bootstrap.php que se llame a
kernel::proyecto()->set_encoding('iso-8859-1');
.
Saludos.