Acentos datos de alumnos para autentificar en base de datos externa no pasan a Moodle

Acentos datos de alumnos para autentificar en base de datos externa no pasan a Moodle

de Pedro Barco -
Número de respuestas: 8

Hola,

Uso una BD externa (con UTF-8 Unicode ) para autentificar y matricular alumnos en un Moodle 1.6.

El problema es que cuando los datos tienen acentos o ñ se cortan al copiarse a Moodle Eloy Lafuente dió una solución en

http://moodle.org/mod/forum/discuss.php?d=45444#210309

Proponía quitar la función utf_decode() de una funcion del archivo lib.php del directorio auth/db, lo he hecho, pero no funciona.

¿Alguien tiene idea de que hacer?

Gracias

Promedio de valoraciones: -
En respuesta a Pedro Barco

Re: Acentos datos de alumnos para autentificar en base de datos externa no pasan a Moodle

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda
¿Estás seguro que la base de datos externa tiene los datos en UTF-8? Lo digo porque acabo de montar una bbdd externa de prueba en MySQL (con las tablas en UTF-8) y he probado antes y después de migrar la instancia de Moodle a Unicod (con una versión 1.6.3+ de prueba que tengo aquí) y en ambos casos funcionaba sin problemas con eñes o tildes.

Saludos. Iñaki.
En respuesta a Iñaki Arenaza

Re: Acentos datos de alumnos para autentificar en base de datos externa no pasan a Moodle

de Pedro Barco -

Si, mira esta es la descripcion de la tabla de matriculaciones,

 Campo  Tipo Cotejamiento Atributos Nulo Predeterminado Extra Acción
 usuario  varchar(10) utf8_unicode_ci   No      Cambiar Eliminar Primaria Índice Único Texto completo
 idcurso  varchar(30) utf8_unicode_ci   No      Cambiar Eliminar Primaria Índice Único Texto completo

esta es la de usuario

Campo  Tipo Cotejamiento Atributos Nulo Predeterminado Extra Acción
 nombre  varchar(40) utf8_unicode_ci   No      Cambiar Eliminar Primaria Índice Único Texto completo
 apellidos  varchar(50) utf8_unicode_ci   No      Cambiar Eliminar Primaria Índice Único Texto completo
 usuario  varchar(15) utf8_unicode_ci   No      Cambiar Eliminar Primaria Índice Único Texto completo
 contrasena  varchar(40) utf8_unicode_ci   No      Cambiar Eliminar Primaria Índice Único Texto completo

(Y más campos)

Estos los datos de un usuario

PÉDRO Probando BÁRCO

y estos los tomados por Moodle

Usted se ha autentificado como P Probando B (Salir)

No sé en qué falla, el archivo que cambié fue lib.php de auth/db y la línea (la 110 por cierto) de la funcion auth_get_userinfo() que cambié fue

$result["$field"] = addslashes(stripslashes(utf8_decode($rs->fields[0])));

por

$result["$field"] = addslashes(stripslashes($rs->fields[0]));

No sé que hacer. A ver si tu ves algo. MUCHAS GRACIAS

En respuesta a Iñaki Arenaza

Re: Acentos datos de alumnos para autentificar en base de datos externa no pasan a Moodle

de Pedro Barco -

Oye, has comentado algo de "antes y después de migrar la instancia de Moodle a Unicod ", yo no he hecho nada, solo instalé y nada más. Mi MySQL es MySQL 4.1.14 con Juegos de caracteres de MySQL: UTF-8 Unicode (utf8) ...

no sé, ¿puede ser por la version de MySQL?

En respuesta a Pedro Barco

Re: Acentos datos de alumnos para autentificar en base de datos externa no pasan a Moodle

de Silvia Irene Adame -

Hola, cuando yo tuve ese problema, modifiqué directamente en ; MySQL, tenía la ver 4.1.14 y funcionó bien lo siguiente:

update mdl_course set lang='es_utf8' where lang='es_mx';

update mdl_user set lang='es_utf8' where lang='es_mx';

Ojalá te sirva. sonrisa

En respuesta a Pedro Barco

Re: Acentos datos de alumnos para autentificar en base de datos externa no pasan a Moodle

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda
Creo recordar que la versión 4.1.14 ya era suficiente para 1.6.x porque los bugs más gordos de Unicode ya estaban solucionados. Así que me da en la nariz que los problemas vienen por otro lado.

En todo caso, si tu base de datos es utf-8, deberías hacer el proceso de conversión de Moodle a utf-8. Entra en http://tu.moodle.com/admin/index.php y pincha en el enlace que habla de migración a utf-8.

Eso sí, mientras dure el proceso no se podrá usar Moodle (se pone en modo mantenimiento), así que planifica tiempo para la migración y avisa a tus usuarios sobre el corte del servicio sonrisa

Saludos. Iñaki.
En respuesta a Iñaki Arenaza

Re: Acentos datos de alumnos para autentificar en base de datos externa no pasan a Moodle

de Pedro Barco -

Perdón por el retraso al leer el correo...

Gracias por la información, pero no encuentro ese enlace de migración a utf-8, ¿por donde está?

En respuesta a Pedro Barco

Re: Acentos datos de alumnos para autentificar en base de datos externa no pasan a Moodle

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda
Hablando de retrasos, aquí llego yo con casi dos semanas de idem...

El enlace aparece cuando accedes a http://tu.sitio.mooodle/admin/index.php.

Si tu instalación de Moodle aún no ha sido convertida a UTF-8, en la parte superior aparece un mensaje indicándolo, así como un botón para iniciar el proceso (o eso creo recordar, ya que no tengo una instalación de Moodle 1.6 sin migrar donde pueda confirmarlo).

Saludos. Iñaki.
En respuesta a Iñaki Arenaza

Re: Acentos datos de alumnos para autentificar en base de datos externa no pasan a Moodle

de Pedro Barco -
Hola Iñaki,

Perdona el retraso, pero como teníamos una MySQL 4.1.14 (y Moodle 1.6.3 necesitaba la 4.1.16) decidimos cambiar de BD (hasta ahora no lo hemos conseguido) y ahora que tenemos la 4.1.20, pero el problema persiste, así que supongo que el problema viene de otro lado.

Miré lo de la conversión de Moodle a UTF-8 y no me sale ningún mensaje en "admin"... ya no sé que hacer.

Tengo todas las tablas en utf8_unicode_ci excepto el cotejamiento de la conexión que está en latin1_spanish_ci y no puedo cambiarlo porque estoy con un servidor compartido (adjunto imagen).

¿Es posible que no salga ningún mensaje de migración y haya que hacer algo desde fuera de Moodle?

Gracias.
Adjunto cotejamiento_mysql.JPG