Problemas Juego Caracteres al traspasar servidor

Spika Seguir

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
7 Jun 2006
Mensajes
91
Hola
He estado mirando varios problemas similares pero no me aclaro.
He convencido a un amigo a pasarse de phpBB a VB, compró su licencia como estaba pegado le hice el traspaso con el Impex ademas de cambio de servidor.

Cuando finalicé la importación todos los mensajes con ñ y acentos salen con caracteres raros, he probado cambiando la codificacion de la BD antigua al exportarla pero nada.

Ahora todo lo que se escribe nuevo sale perfectamente pero los mensajes antiguos quedan como os he comentado y no es plan de cambiarlos uno a uno, tampoco puedo volver a importarlo porque se perderían muchos mensajes nuevos.

¿Hay alguna forma de cambiar esos caracteres de los mensajes importados a los correctos?

Esta es la configuracion que tiene la consulta ¿es correcta para mantenerla así?:

Resultado SQL
Generado por: phpMyAdmin 2.8.2.4 / MySQL 5.1.56

consulta SQL: SHOW VARIABLES LIKE 'char%'; 


character_set_client: utf8
character_set_connection: utf8
character_set_database: utf8
character_set_filesystem: binary
character_set_results: utf8
character_set_server: latin1
character_set_system: utf8
character_sets_dir: /usr/share/mysql/charsets/

Codificacion de la traduccion del idioma español en VB: ISO-8859-1

Gracias y Saludos
 

Adara

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Ago 2011
Mensajes
252
Buenas Spika,

Bueno vamos a ver aquí el problema principal es que estás transpasando una base de datos phpBB en UTF-8 a ISO-8859-1 Y tienes varias formas para solucionar esto.

Transcodificar la información UTF-8 UTF-8 o recodificar, si eliges la última deberás hacer lo siguiente.

Requisitos:

Perl 4.x o superior
Recode instalado en el servidor.
MySQL operativo para las transacciones.

Insertar CODE, HTML o PHP:
mysqldump -h localhost -u usuario -pcontraseña --add-drop-table --create-options --extended-insert --routines base_del_datos > base_del_datos.sql

Con eso sacarás la base de datos con la codificación base del primer servidor MySQL.

Insertar CODE, HTML o PHP:
recode -d UTF-8..ISO-8859-1 base_de_datos.sql

Recodifica las consultas de toda la base para que sean compatibles con ISO-8859-1.

Insertar CODE, HTML o PHP:
perl -pi -w -e 's/CHARSET=utf8/CHARSET=latin1/g;' base_de_datos.sql

Esto cambia los CHARSET por defecto para que cuando lo metas en la BD no tengas de nuevo sorpresitas. ;)

Insertar CODE, HTML o PHP:
perl -pi -w -e 's/COLLATE=utf8_general_ci/COLLATE=latin1_spanish_ci/g;' base_de_datos.sql

Cambias de nuevo para que la exportación hacia la nueva plataforma sea correcta como ISO-8859-1.

Vuelves a subir el archivo para importarlo a vBulletin y funcionará todo perfecto. :) (Ya que se ha importado a ISO-8859-1 por defecto la BD de phpBB antes de ser transpasada a vBulletin por lo que en el momento que se haga la migración todos los post saldrán correctamente las "ñ" y acentos)

Un saludo.
 

Spika

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
7 Jun 2006
Mensajes
91
Impresionante tu ayuda, muchas gracias por tu tiempo!
Tengo varios inconvenientes a esta solución, es un Servidor VPS Administrado y no tengo acceso root, creo que para poder instalar y ejecutar Recode lo necesito.

El caso es que he entrado en el phpmyadmin del servidor y la base de datos que está usando tiene el juego de caracteres en UTF8 unicode y el cotejamiento utf8_general_ci por lo que la de phpBB no debería haberme dado problemas, vamos que tengo un lio alucinante, porque lo mismo estoy confundiendo términos, disculpa.

- La traducción del Vbulletin en el AdminCP - Idiomas esta en ISO-8859-1 (¿debo cambiarla aunque funcione?)
- La Base de datos que está funcionando en el Servidor en UTF-8 como comenté arriba.
- Cuando escriben en el Foro todos los caracteres salen correctamente, salvo como comenté que los antiguos importados se han quedado mal.

¿Debo entoces hacer lo que me comentas, o hay otra forma que pueda solucionarlo?

Gracias por tu tiempo

Saludos
 

Khriz

Delta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
18 Mar 2011
Mensajes
521
Hola !

Para usar la traducción: ISO-8859-1
Debes tener como cotejamiento en todas las tablas : Latin1
y comentada la línea para uso de utf-8 en config.php

Para usar la traducción: UTF-8
Debes tener como cotejamiento en todas las tablas: UTF-8
y Des comentada la línea de uso de utf-8 en config.php

Ahora en lo que pude leer de manera rápida, si tienes todo el cotejamiento de las tablas de la DB en utf-8 entonces
instala el idioma utf-8 y luego ve a config.php en donde des comentaras la línea de conexión utf-8.
luego en mantenimiento actualizas la información del foro.

Saludos.

PD: Buen explicación Adara ^ ^
 

Spika

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
7 Jun 2006
Mensajes
91
Gracias tambien Banned, pero cada vez que leo más se complica más, he visto en el Foro que ejecute un diagnóstico desde las Utilidades de Mysql del AdminCP del Foro y me da este resultado:

character_set_clientlatin1
character_set_connectionlatin1
character_set_databaseutf8
character_set_filesystembinary
character_set_resultslatin1
character_set_serverlatin1
character_set_systemutf8

Que no es igual al que puse en el mensaje inicial que ejecuté en el Servidor :

Generado por: phpMyAdmin 2.8.2.4 / MySQL 5.1.56

consulta SQL: SHOW VARIABLES LIKE 'char%'; 


character_set_client: utf8
character_set_connection: utf8
character_set_database: utf8
character_set_filesystem: binary
character_set_results: utf8
character_set_server: latin1
character_set_system: utf8
character_sets_dir: /usr/share/mysql/charsets/

Visto así no sé como me funciona esto... ¿no deberían dar el mismo resultado?

Gracias y disculpad
Saludos
 

Adara

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Ago 2011
Mensajes
252
Buenas de nuevo,
Gracias a los dos :) sigue la guía que te he dado que la hecho paso a paso y hazlo siguiendo las expectativas de UTF-8 en todo momento, sin codificar a ISO-8859-1 luego simplemente tendrás que importar el idioma UTF-8 Español de vHispano y listo.

Un saludo y cualquier duda ¡no dudes en preguntarlo! ;)
 

Spika

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
7 Jun 2006
Mensajes
91
Perdonad si os parezco torpe, pero es que este tema se me va de las manos y sigo perdido, me faltan los conocimientos base para entender esto:

En el post #5 tengo dos informaciones del Servidor y de VBulletin que no se si deben estar iguales y como cambiarlas si no es correcta. (dependiendo de lo que vaya a usar).

La otra cuestion es que no se qué es: "Transcodificar la información UTF-8 UTF-8" ya que no puedo recodificar porque no tengo acceso a Recode en el servidor.

La idea final, perdonad mi insistencia, es:
- Corregir los caracteres extraños importados en la BD que está funcionando actualmente (ya no puedo importar la antigua BD de phpBB porque la nueva tiene muchos mensajes nuevos, descartada entonces)
No sé si hay un metodo que pueda exportar la BD hacerle una recodificación y volverla a subir y dejar todo como está.

O si luego si es mejor:

- Tener todo en UTF-8
- Instalar el idioma en UTF-8

Perdonad mi torpeza
Saludos
 

Adara

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Ago 2011
Mensajes
252
Buenas Spika,

Tranquilizate por que para algo están los foros, para ayudar y transmitir información a si que las preguntas que sean necesarias, evidentemente tener en UTF-8 todo te da un acceso universal a cualquier idioma, pero hay que codificarlos. ISO-8859-1 digamos que es la manera rápida de poder utilizar los carácteres españoles pero limitandolos al mismo ya que dicho lenguaje no acepta el Ruso, entre otros UTF-8 es universal.

Conclusión: ¡Todo a UTF-8! :)

Un saludo.
 

Spika

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
7 Jun 2006
Mensajes
91
Hola, despues de mas de un año rescato este tema porque aunque parezca mentira sigo con el problema, me está dando la vara de nuevo el dueño del foro y no se como solucionarselo, mis conocimientos en este tema son muy limitados y no termino de aclararme, lo siento, por eso os pido socorro.

Le he importado el idioma de aquí en UTF-8 sin tocar la Base de Datos que esta igual que indicaba en los post superiores, pero cuando lo importo le tengo que poner manualmente UTF-8 en la configuracion del idioma y se ve bien en parte (ver la web) he descomentado la linea utf8 del config.php y se volvió loco el Foro (increible: Me salió un mensaje que estaba baneado!!!), todo con caracteres ilegibles, por lo que tuve que dejarla comentada.

Mi idea si es que hay un tutorial para idiotas como yo es:
Pasarlo todo a UTF-8 como dice Adara y eliminar los caracteres extraños del los post importados de phpBB
Pero no se que pasos tener.

Gracias
 

Khriz

Delta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
18 Mar 2011
Mensajes
521
Hola Spika,

- ¿Cuando Ingresas al phpMyAdmin entras en la BD de ese foro y ves las tablas con que cotejamiento sale?
- ¿En ese mismo lugar si vas a la pestaña operaciones que cotejamiento muestra?
- ¿En Config.php, esta comentada o descomentada la conexion con utf8?
- ¿Que idioma instalaste ISO-8859-1 o UTF8 ?

Si fuera posible adjunta capturas para las 2 primeras

Saludos.
 

Spika

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
7 Jun 2006
Mensajes
91
Ver el archivo adjunto 5660Ver el archivo adjunto 5661
Hola Spika,

¿Cuando Ingresas al phpMyAdmin entras en la BD de ese foro y ves las tablas con que cotejamiento sale?
Juego de caracteres de mysql: UTF-8 Unicode (utf8) y cotejamiento de las conexiones mysql: utf8_general_ci
¿En ese mismo lugar si vas a la pestaña operaciones que cotejamiento muestra?
utf8_general_ci
¿En Config.php, esta comentada o descomentada la conexion con utf8?
Comentada, si la descomento el Foro se ve fatal he incluso no puedo entrar en el Frontend (rarísimo, me sale un mensaje de expulsión)
¿Que idioma instalaste ISO-8859-1 o UTF8 ?
Ahora esta instalado el ISO-8859-1 (es el que está usando desde que empezó el foro VB y la verdad que todo lo que se escribe no ha dado problemas), pero he instalado el UTF-8 y se ve fatal, pero si cambio en la configuración del idioma UTF-8 la opción que sale por defecto: ISO-8859-1 a UTF8 mejora algo, pero no todo, lo he tenido que quitar.

Muchas Gracias por tu interés

He encontrado una forma para quitar los caracteres que están mal en la BD antigua de phpBB la que importó los cárteres raros y son estas sentencias (Pero cuidado con esto que estamos modificando la BD y sin backup previo no hay vuelta atrás) desde el AdminCP —> Ejecutar consulta mysql:

Por ejemplo, esta cambia todo los caracteres Ú por Ú de todos los posts de la BD, en el caso de que tuvieras un texto en mayúsculas que pusiera “AÚN” y lo quieres arreglar a: “AÚN":
Insertar CODE, HTML o PHP:
update post
set pagetext= replace(pagetext,'Ú','Ú')

esta cambia pero de los títulos:

Insertar CODE, HTML o PHP:
update thread
set title= replace(title,'Ú','Ú')
 

Khriz

Delta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
18 Mar 2011
Mensajes
521
Hola Spika,

como tienes toda la DB en utf8 y tambien las conexiones en utf8
debias instalar el idioma en utf8 (aqui hay un problema con vBulletin) se instala el idioma utf8 dejando comentado en config.php las lineas de codigo de trabajo utf8, y cuando ya esta instalado vuelves a editar el config.php y lo descomentas, reconstruyes los idiomas y funciona.

pero lo ha solucionado de otra forma, espero que no haya mas problemas a futuro.

Saludos.
 

Spika

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
7 Jun 2006
Mensajes
91
Pero es que tengo una duda, el idioma ingles que trae por defecto en la configuración pone en el apartado de “Juego de Caracteres HTML” : ISO-8859-1 y he cambiado el campo a UTF-8

He desinstalado el Español que estaba en ISO y he instalado el Idioma que me he descargado desde esta web e instalado desde la carpeta UTF-8 que trae el fichero y cuando lo instala el Juego de Caracteres también pone ISO-8859-1 aunque antes de subirlo habilité la opción: "Leer charset desde archivo XML” (no parece que haga caso), así que manualmente le pongo UTF-8

Reconstruyo los idiomas, y todo aparece bien menos los títulos de los Foros y la leyenda, ejemplo: "Bienvenido a Club GS Trail de Espa�a"

Total que vuelvo atrás… como los cangrejos...
 

Khriz

Delta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
18 Mar 2011
Mensajes
521
Bueno oficialmente vbulletin solo da soporte a ISO-8859-1
toda la DB deberia estar en Latin1,

pero si te va bien con la solución anterior, dejalo ahi por ahora,
si a futuro te trae problemas tendras que cambiar todo el cotejamiento de la DB a latin1 y usar la trauducción ISO-8859-1.

hay scripts que hacen ese cambio de cotejamiento, claro antes un backup completo.
 

Spika

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
7 Jun 2006
Mensajes
91
Bueno, pues gracias por tu soporte por lo menos funciona como está.
Muchas Gracias de nuevo!
 
Arriba