Pregunta

He transferido una gran base de datos de una base de datos phpBB3 latin1 a una UTF-8 Todo fue bien, ahora tengo que cambiar los caracteres "extraños" en la base de datos. Ayer encontré un método que trabajaba, ahora no puedo encontrar más, he intentado:

update phpbb_topics set topic_title = replace(topic_title, 'Ã', 'à');
update phpbb_topics set topic_title = replace(topic_title, 'è', 'è');

Básicamente tengo que cambiar todos los caracteres a en el campo de tabla a una y así sucesivamente.

¿Cómo se puede hacer esto?

Gracias

¿Fue útil?

Solución

phpbb_topics actualización del conjunto TOPIC_TITLE = sustituir (reemplazar (TOPIC_TITLE, 'A', 'E'), 'A', 'a');

Debe responder a sí mismo las siguientes preguntas:

  • ¿qué datos binarios se almacena en la base de datos (función de su uso ascii () o SELECT ... INTO DUMPFILE)
  • ¿qué datos binarios se envía al cliente (que no siempre es el mismo que el almacenado)
  • cómo su cliente muestra los datos binarios recibidos? (Probar diferentes clientes y diferentes opciones)

Otros consejos

Me lo descarga en un archivo .sql y luego reemplazar los caracteres con sed o un editor de texto (si el archivo no es grande). Después de que se ejecuta el script de nuevo. Tal vez hay una manera de hacer esto en la base de datos directamente, sino que no lo saben.

El problema de mi solución es que no es atómica. Los cambios en el PP entre el vertedero y la reinserción se pierden.

Saludos Raffael

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