Al intentar migrar este blog desde Jaws a WordPress el principal problema con el que me encontré fue el de que al importar toda la base de datos de los post y los comentarios desde jaws en wordpress se veían horribles aquellas palabras que tenían acentos o ñ, después de probar con iconv y otras herramientas la solución fue usar vim y su capacidad para hacer búsqueda y reemplazo ( pude haber usado sed pero en este caso en particular prefería ver lo que estaba haciendo ).
El problema tal vez se produjo al migrar múltiples veces de hosting en donde cada cual tenía su codificación de caracteres dejándome a la final un archivo sql en utf-8 pero los caracteres acentuados viéndose horrible como si estuvieran en iso-8859, para hacer la conversión simplemente hay que abrir el archivo sql en vim y colocar por ejemplo:
:%s/á/á/g
Esta instrucción sustituye el carácter extraño por la letra á, para los demás tiene que hacer eso mismo para cada carácter según la siguiente tabla:
á => á
é => é
í => Ã
ó => ó
ú => ú
ñ => ñ
Nota: En algunos casos da error y es debido a que no se puede usar un caracter extraño, probar colocar \ antes de un carácter que se sospeche que no se puede usar en la búsqueda y reemplazo de vim.
de verdad que eso es un lio, pero eso puedes solucionarlo con un simple script en php. (utf8_decode; utf8_encode si no me equvoco)
el problema es que mysql guarda la informacion en utf8 (es lo que me ha parecido) pero la entrada y salida depende del sistema cliente y no es utf8.
es decir: que cuando obtienes un dato del servidor debes de codificarlo (para que parezca utf8 y puedas manejarlo)y asi cuadre con el sistema cliente y cuando subes una informacion debes de decodificarlo.
es decir subes al servidor usas utf8_decode cuando optienes informacion usas utf8_encode. eso pasa en linux, no se si pasa en otros sistemas operativos.
saludos
a otra cosa hay que tener cuidado con no codificar lo que ya esta codificado porque sino eso es irreversible