Pregunta

Estoy migrando mi blog de WordPress y el Foro phpBB a un nuevo servidor de alojamiento. Estoy usando phpMyAdmin para importar el script SQL de la base de datos en el sitio anterior.

Cuando abro el script .sql con Kate, dice que usa UTF8 como codificación. Cuando importo el sql en el nuevo servidor, tengo la opción en phpMyAdmin para elegir la codificación, donde utf8 está seleccionado por defecto.

Sin embargo, cuando termino de importar la base de datos, leo el texto de las publicaciones directamente en phpMyAdmin y veo caracteres como " & # 233; " ;, " # 241; & "; Etc. que no han sido &"; Interpretados & "; y ha sido reemplazado con caracteres extraños en lugar.

Puedo ver que mi instalación de WordPress no funciona también. Aparentemente hay un problema con esta cosa de codificación, pero creo que el problema está en la base de datos MySQL o phpMyAdmin y no en WordPress.

Las versiones de MySQL son prácticamente las mismas, MySQL 5, pero una revisión diferente. Además, no hubo ningún problema al migrar la base de datos del foro, por lo que esto es aún más extraño ...

Estoy perdido en cuanto a cómo solucionar esto ... Cualquier idea es bienvenida.

¿Fue útil?

Solución

¿Has intentado agregar

SET NAMES 'utf8';

a su volcado de sql?

Lo que ocurre con utf8 o codificaciones en general es que para tener éxito, debes asegurarte de que:

  • el archivo está codificado utf8 sin firma
  • la codificación predeterminada del servidor mysql está establecida en utf8
  • la conexión es utf8 (es por eso que pones SET NAMES 'utf8' en tu archivo sql).
  • todas las tablas y columnas tienen la codificación y el conjunto de caracteres correctos
  • todos sus archivos web también deben estar codificados en utf8. Y no funciona solo agregar el encabezado correcto. Debe abrir el archivo, verificar si la codificación es utf8, si no, cortar todo, cambiar la codificación a utf8 y pegar todo de nuevo. ¡No funciona si solo cambia la codificación y guarda el archivo!

Otros consejos

Muchas gracias por sus respuestas. Encontré la solución, y me siento realmente tonto por no haberme dado cuenta antes. Se suponía que todo debía funcionar bien:

-El archivo fue codificado con utf8 -Las tablas se declararon con utf8:

SET character_set_client = utf8;
-El servidor MySQL se configuró con utf8 Etc.

Lo que no me di cuenta en primer lugar es que estaba usando una copia de seguridad de la base de datos del asistente de copia de seguridad de cPanel. Tan pronto como me di cuenta de esto, utilicé phpMyAdmin en el antiguo servidor para exportar la base de datos, la importé en el nuevo servidor y listo, el problema se solucionó.

phpMyAdmin entiende phpMyAdmin mejor que cPanel: P Aparentemente, cPanel exporta el script para que se importe con cPanel. Esto probablemente también habría funcionado, pero confío en phpMyAdmin mejor.

Muchas gracias por sus respuestas, sin embargo.

Me encontré con el mismo problema, ya que luché con él durante aproximadamente una hora y rompió muchos de mis sitios, pensé que miraría y vería si alguien más estaba luchando con él y publiqué una solución: la solución simplemente es especificar el conjunto de caracteres de importación en la importación.

Si tiene acceso SSH a su host, primero suelte todas sus tablas nuevamente en la nueva base de datos, luego ejecute este comando en la sesión SSH (suponiendo que su antiguo archivo de volcado sea olddatabase.dump.sql ):

$ mysql -h host -u nombre de usuario -p contraseña --default-character-set = utf8 base de datos < olddatabase.dump.sql (reemplace host, nombre de usuario, contraseña y base de datos con valores apropiados)

Esta es la forma más sencilla y directa de resolver el problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top