La semana pasada ayude a un amigo a reparar un error que tuvo al momento de actualizar su blog desde una versión algo viejita de wordpress a la 2.9.1, no se realmente que versión tenía pero no se completo el upgrade y su sitio quedo en blanco porque no se conectaba wordpress a la base de datos.
Me dio acceso a su servidor y resubí la versión mas nueva de wp manualmente por FTP. Después de moverle un poco al fin logre que se conectará y visualizará el blog, pero había un problema.. Los caracteres latinos con acentos, tildes y guiones (á,é, í, ó, ú, ñ, Ñ, etc) no se visualizaban y mostraban caracteres extraños en ves de ellos ( ÔÃ0Ôà Ãa à áéÃà ³Ãº), no se si la base de datos usaba otro codificación para guardar los datos diferente a utf8 y se quedo de esa forma, porque revisando la base de datos esos caracteres reemplazaron a las letras que debían aparecer y ya aparecían como un dato insertado, en fin.
Para solucionar esto hay varias formas, yo les dejaré 2. Lo que vamos hacer es reemplazar los caracteres raros por el valor real que les corresponde a cada conjunto de caracteres “raros”, por ejemplo Ô por á .
1.- Utilizando Notepad++.
Hacemos un respaldo de nuestra base de datos y la guardamos en formato “.sql” en algún lugar de nuestra computadora, abrimos el archivo con Notepad++ y presionamos las teclas “Control + H“, de esta forma se abrirá un cuadro de búsqueda y reemplazo. Y reemplazamos colocando en la primer casilla “Buscar” los caracteres raros que vamos a reemplazar y en la segunda la el caracter real que debe ser.
Caracteres que debemos reemplazar:
- ñ por ñ
- á por á
- ó por ó
- Ã por í
- íº por ú
- í‘ por Ñ
- ú por ú
- í© por é
- – por –
Ventaja: El 100% de los caracteres raros son reemplazados rápidamente en solo 6 reemplazos.
Desventaja: El tener que descargar y volver a subir tu base de datos, sobre todo cuando son bases de datos muy pesadas. Otra es que si la base de datos es mucho mayor a la memoria RAM de tu computadora se tardará mucho o simplemente se trabará el programa al abrirla o al intentar hacer el reemplazo.
2.- Desde Phpmyadmin utilizando querys SQL (REPLACE).
Esta forma de hacerlo me la encontré en el blog de guatewireless y es la que utilice, se trata de hacer un Remplazo en los campos de una tabla utilizando la sentencia REPLACE de SQL de la siguiente forma.
Sintaxis:
UPDATE tabla SET campo = REPLACE(campo,’texto a buscar’,’nuevo texto’);
En guate compartieron las consultas para reemplazar caracteres en los títulos, contenido, comentarios, autores en los comentarios y para los que usan Yet another related, pero estas no solucionan todos los errores, cree todas las consultas que sirven para reemplazar lo mas importante para no perder el SEO del blog(sobre todo en un blog que google indexa muy rápido).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | Nombre que se muestra en el blog de cada autor. UPDATE wp_users SET display_name = REPLACE(display_name, 'ñ', 'ñ'); UPDATE wp_users SET display_name = REPLACE(display_name, 'á', 'á'); UPDATE wp_users SET display_name = REPLACE(display_name, 'ó', 'ó'); UPDATE wp_users SET display_name = REPLACE(display_name, 'Ã', 'í'); UPDATE wp_users SET display_name = REPLACE(display_name, 'íº', 'ú'); UPDATE wp_users SET display_name = REPLACE(display_name, 'í‘', 'Ñ'); UPDATE wp_users SET display_name = REPLACE(display_name, 'ú', 'ú'); UPDATE wp_users SET display_name = REPLACE(display_name, 'í©', 'é'); UPDATE wp_users SET display_name = REPLACE(display_name, '–', '–'); Nombre del post UPDATE wp_posts SET post_name = REPLACE(post_name, 'ñ', 'ñ'); UPDATE wp_posts SET post_name = REPLACE(post_name, 'á', 'á'); UPDATE wp_posts SET post_name = REPLACE(post_name, 'ó', 'ó'); UPDATE wp_posts SET post_name = REPLACE(post_name, 'Ã', 'í'); UPDATE wp_posts SET post_name = REPLACE(post_name, 'íº', 'ú'); UPDATE wp_posts SET post_name = REPLACE(post_name, 'í‘', 'Ñ'); UPDATE wp_posts SET post_name = REPLACE(post_name, 'ú', 'ú'); UPDATE wp_posts SET post_name = REPLACE(post_name, 'í©', 'é'); UPDATE wp_posts SET post_name = REPLACE(post_name, '–', '–'); Titulos en los post UPDATE wp_posts SET post_title = REPLACE(post_title, 'ñ', 'ñ'); UPDATE wp_posts SET post_title = REPLACE(post_title, 'á', 'á'); UPDATE wp_posts SET post_title = REPLACE(post_title, 'ó', 'ó'); UPDATE wp_posts SET post_title = REPLACE(post_title, 'Ã', 'í'); UPDATE wp_posts SET post_title = REPLACE(post_title, 'íº', 'ú'); UPDATE wp_posts SET post_title = REPLACE(post_title, 'í‘', 'Ñ'); UPDATE wp_posts SET post_title = REPLACE(post_title, 'ú', 'ú'); UPDATE wp_posts SET post_title = REPLACE(post_title, 'í©', 'é'); UPDATE wp_posts SET post_title = REPLACE(post_title, '–', '–'); Contenido de los post UPDATE wp_posts SET post_content = REPLACE(post_content, 'ñ', 'ñ'); UPDATE wp_posts SET post_content = REPLACE(post_content, 'á', 'á'); UPDATE wp_posts SET post_content = REPLACE(post_content, 'ó', 'ó'); UPDATE wp_posts SET post_content = REPLACE(post_content, 'Ã', 'í'); UPDATE wp_posts SET post_content = REPLACE(post_content, 'íº', 'ú'); UPDATE wp_posts SET post_content = REPLACE(post_content, 'í©', 'é'); UPDATE wp_posts SET post_content = REPLACE(post_content, 'ú', 'ú'); UPDATE wp_posts SET post_content = REPLACE(post_content, 'í‘', 'Ñ'); Contenido reducido (cuando se usa excerpt) UPDATE wp_posts SET post_excerpt = REPLACE(post_excerpt, 'ñ', 'ñ'); UPDATE wp_posts SET post_excerpt = REPLACE(post_excerpt, 'á', 'á'); UPDATE wp_posts SET post_excerpt = REPLACE(post_excerpt, 'ó', 'ó'); UPDATE wp_posts SET post_excerpt = REPLACE(post_excerpt, 'Ã', 'í'); UPDATE wp_posts SET post_excerpt = REPLACE(post_excerpt, 'íº', 'ú'); UPDATE wp_posts SET post_excerpt = REPLACE(post_excerpt, 'í‘', 'Ñ'); UPDATE wp_posts SET post_excerpt = REPLACE(post_excerpt, 'ú', 'ú'); UPDATE wp_posts SET post_excerpt = REPLACE(post_excerpt, 'í©', 'é'); UPDATE wp_posts SET post_excerpt = REPLACE(post_excerpt, '–', '–'); CategoríAS de los post UPDATE wp_posts SET post_category = REPLACE(post_category, 'ñ', 'ñ'); UPDATE wp_posts SET post_category = REPLACE(post_category, 'á', 'á'); UPDATE wp_posts SET post_category = REPLACE(post_category, 'ó', 'ó'); UPDATE wp_posts SET post_category = REPLACE(post_category, 'Ã', 'í'); UPDATE wp_posts SET post_category = REPLACE(post_category, 'íº', 'ú'); UPDATE wp_posts SET post_category = REPLACE(post_category, 'í‘', 'Ñ'); UPDATE wp_posts SET post_category = REPLACE(post_category, 'ú', 'ú'); UPDATE wp_posts SET post_category = REPLACE(post_category, 'í©', 'é'); UPDATE wp_posts SET post_category = REPLACE(post_category, '–', '–'); Tags de los post UPDATE wp_terms SET name = REPLACE(name, 'ñ', 'ñ'); UPDATE wp_terms SET name = REPLACE(name, 'á', 'á'); UPDATE wp_terms SET name = REPLACE(name, 'ó', 'ó'); UPDATE wp_terms SET name = REPLACE(name, 'Ã', 'í'); UPDATE wp_terms SET name = REPLACE(name, 'íº', 'ú'); UPDATE wp_terms SET name = REPLACE(name, 'í‘', 'Ñ'); UPDATE wp_terms SET name = REPLACE(name, 'ú', 'ú'); UPDATE wp_terms SET name = REPLACE(name, 'í©', 'é'); UPDATE wp_terms SET name = REPLACE(name, '–', '–'); Nombre meta de los post UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'ñ', 'ñ'); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'á', 'á'); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'ó', 'ó'); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'Ã', 'í'); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'íº', 'ú'); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'í‘', 'Ñ'); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'ú', 'ú'); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'í©', 'é'); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, '–', '–'); Comentarios UPDATE wp_comments SET comment_content = REPLACE(comment_content, '–', '–'); UPDATE wp_comments SET comment_content = REPLACE(comment_content, 'ñ', 'ñ'); UPDATE wp_comments SET comment_content = REPLACE(comment_content, 'á', 'á'); UPDATE wp_comments SET comment_content = REPLACE(comment_content, 'ó', 'ó'); UPDATE wp_comments SET comment_content = REPLACE(comment_content, 'Ã', 'í'); UPDATE wp_comments SET comment_content = REPLACE(comment_content, 'íº', 'ú'); UPDATE wp_comments SET comment_content = REPLACE(comment_content, 'í©', 'é'); UPDATE wp_comments SET comment_content = REPLACE(comment_content, 'ú', 'ú'); UPDATE wp_comments SET comment_content = REPLACE(comment_content, 'í‘', 'Ñ'); Autores en los comentarios UPDATE wp_comments SET comment_author = REPLACE(comment_author, '–', '–'); UPDATE wp_comments SET comment_author = REPLACE(comment_author, 'ñ', 'ñ'); UPDATE wp_comments SET comment_author = REPLACE(comment_author, 'á', 'á'); UPDATE wp_comments SET comment_author = REPLACE(comment_author, 'ó', 'ó'); UPDATE wp_comments SET comment_author = REPLACE(comment_author, 'Ã', 'í'); UPDATE wp_comments SET comment_author = REPLACE(comment_author, 'íº', 'ú'); UPDATE wp_comments SET comment_author = REPLACE(comment_author, 'í©', 'é'); UPDATE wp_comments SET comment_author = REPLACE(comment_author, 'ú', 'ú'); UPDATE wp_comments SET comment_author = REPLACE(comment_author, 'í‘', 'Ñ'); |
Ventajas: Todo se hace desde el servidor y no hay necesidad de descargar la base de datos. Puede quedar al 100% al igual que la forma anterior pero es mas lento el proceso.
Desventajas: Se deben crear 6 consultas por cada campo de una tabla(una por una) y si se tienen instalados plugins que utilicen tablas propias son mas.
Y aquí se termina, espero les sea de utilidad.
Gracias!!!! Justo lo que buscaba…sos un genio!!
Que bueno que te haya servido.
Un saludo!.
muchas gracias me sirvio, busque otros carateres que te faltan y quizas tengas:
'¿', '¿')
'“', '"');
'â€,', '"');
el primero es el signo de interrogacion del principio y los otros dos son comillas al abrir el primero y al cerrar el segundo espero os sirvan tb y gracias por tu aporte x q estaba loco ya
oh si, muchas gracias, ya había notado algunos otros caracteres raros, pero no los había puesto, no se si esos que pones eran algunos de ellos, por lo menos el del signo si.
Saludos!
Me uno a los agradecimientos. Me está sirviendo de gran ayuda. Aunque no entiendo exactamente donde y que debo poner la consulta en el phpmyadmin, algunas de las partes como los post y los títulos de los post los tengo ya arreglados.
¡Gracias de nuevo por compartir la solución!
Hola,
Yo lo solucioné agregandole esta línea al dump:
SET NAMES utf8;
———————————————- después sigue esto que lo genera el dump.
———————————————-
SET SQL_MODE=”NO_AUTO_VALUE_ON_ZERO”;
…
…
Creacione s de tablas y bla bla bla en el dump.
Subí el archivo dump nuevamente y lo importé con el putty.exe
“mysql -h localhostInterno -u usuarioDB -p nombredeBase < arhivoDump.sql"
Saludos.
Hola Gabo muchas gracias, esa no me la sabia. Una muy buena solución para quienes les gusta utilizar conexiones SSH, lo malo es que no todos los servidores dan acceso a SSH.
Saludos!