Foro de soporte
EventosNo hay eventos próximosParticipan...Noticiasjoelbarrios (889) bartoloco (103) capotes (87) bakara (59) Koalasoft (50) The One (46) domingov (43) gomezbjesus (35) aLb3rT (30) adrianpazr (21) yucleto (16) ValeriaBueno (15) Zilus (14) burjans (13) farceb (11) Comentarios joelbarrios (155) Koalasoft (126) aLb3rT (107) gomezbjesus (73) The One (61) bakara (34) manowar (32) Oscar Hernández (30) rlameda (26) bartoloco (26) Jose de Jesus (22) scs_calleros (21) Nuke (21) julioe (20) yucleto (20) |
Lidiando con UTF-8 y bases de datos en MySQL™.Autor: Joel Barrios DueñasCorreo electrónico: darkshram en gmail punto com Sitio de Red: http://www.alcancelibre.org/ Jabber ID: darkshram@jabber.org Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
Introducción.¿Qué es UTF-8?UTF-8 es un método de codificación de ASCII para Unicode (ISO-10646), el Conjunto de Caracteres Universal o UCS. Éste codifica la mayoría de los sistemas de escritura del mundo en un solo conjunto de caracteres, permitiendo la mezcla de lenguajes y guiones en un mismo documento sin la necesidad de ajustes para realizar los cambios de conjuntos de caracteres. ¿Cómo afecta la adopción de UTF-8?Cualquier sitio de red que haga uso de bases de datos suele toparse con problemas cuando se trata de lidiar con el tipo de codificación (UTF-8, ISO-8859-1, etc.), puesto que en algunos casos, por citar un ejemplo, los caracteres latinos se muestran incorrectamente por el cambio de codificación. Actualmente se está adoptando UTF-8 como codificación para todo, sin embargo aún hay mucho material codificado en, por ejemplo, ISO-8859-1, e incluso en algunos casos codificado de manera poco apropiada para los latinos (KOI8-R alias cirílico). Uno de los casos que podemos citar es PHP Nuke. Si se descarga el código fuente de cualquier versión de PHP Nuke y se examina el tipo de codificación, encontraremos que casi todos los fichero PHP y el molde de la base de datos inicial, Procedimientos.La primera recomendación a quien vaya a implementar un sitio con PHP Nuke, al igual que cualquier otro tipo de software similar, sería tomar nuke.sql y convertirlo a UTF-8, o cualquier otra codificació según el caso y conveniencia. Para términos generales, puede utilizarse Bluefish para realizar este cambio de codificación, aunque quienes prefieran una consola podrán utilizar Vi para realizar esta tarea:
Recomendamos utilizar Vi debido a que éste no solo codificará el fichero, a diferencia de Bluefish y Tomar esta precaución asegurará que los datos que se almacenen en UTF-8 en la base de datos. Sin embargo… ¿Que se puede hacer cuando se tiene una gran base de datos en producción? Puede seguirse el siguiente procedimiento: Se empieza obteniendo un respaldo de la base de datos actual:
→ Como precacución, archive este resplado en un lugar seguro por si acaso sale algo mal. Utilizar vi para codificar en UTF y caracteres, de modo que no se pierda un solo carcater:
Lo anterior hace que vi abra Si se tienen varios ficheros *.sql, aún si es tentador a fin de ahorrar trabajo, no es conveniente ejecutar
Una vez codificado todo es conveniente crear una una nueva base de datos que denominaremos «temporal» para realizar pruebas y verificar que el método ha dado resultado:
Utilizaremos
Una vez hecho lo anterior, realice pruebas y verifique que los caracteres latinos contenidos entre los datos que aparecen la base de datos realmente se visualizan correctamente. Si está conforme y considera que todo está correcto, a su discreción, proceda a reemplazar la base de datos, previo respaldo por mera precaución.
|
Comentarios Recientes