|
Si tenemos que hacer un backup de una base de
datos MySQL, podemos emplear alguno de los métodos que
explico en Backup y restore.
Si entramos en la base con nuestro gestor, generalmente
phpMyAdmin, y observamos los caracteres de los registros
de una determinada tabla vemos que contienen vocales
acentuadas, eñes o signos de interrogación. Si hacemos un
backup y posteriormente un restore en otra base,
comprobaremos que los caracteres típicos de nuestro idioma
se han convertido en símbolos indescifrables, y así
aparecerán en las páginas de nuestro sitio. Algo extraño ha
ocurrido. ¿Qué ha pasado?
Los textos han llegado originalmente a la base de datos
desde un formulario en una página web. Esta página soporta
el código de caracteres iso-8859-1, o lo que es lo
mismo latin1. Al hacer el backup, el sistema
MySQL utiliza el juego de caracteres UTF-8 (no
siempre ocurre así). Parte del resultado observado en el
archivo SQL que se obtiene del backup puede ser muy
parecido al que mostramos a continuación:
| Código: |
|
INSERT INTO `jos_components` (`id`,
`name`, `link`, `menuid`, `parent`, `admin_menu_link`,
`admin_menu_alt`, `option`, `ordering`, `admin_menu_img`,
`iscore`, `params`) VALUES (1, 'Banners', '', 0,
0, '', 'Gestión
de banners', 'com_banners', 0, 'js/ThemeOffice/component.png',
0, ''), (2, 'Banners', '', 0, 1, 'option=com_banners',
'Banners activos', 'com_banners', 1, 'js/ThemeOffice/edit.png',
0, ''),
(3, 'Clientes', '', 0, 1, 'option=com_banners&task=listclients',
'Administrar clientes', 'com_banners', 2, 'js/ThemeOffice/categories.png',
0, ''),
(4, 'Enlaces Web', 'option=com_weblinks', 0,
0, '', 'Administrar enlaces web', 'com_weblinks',
0, 'js/ThemeOffice/globe2.png', 0, ''),
(5, 'Enlaces Web', '', 0, 4, 'option=com_weblinks',
'Ver enlaces web', 'com_weblinks', 1, 'js/ThemeOffice/edit.png',
0, ''),
(6, 'CategorÃas',
'', 0, 4, 'option=categories§ion=com_weblinks',
'Administrar categorÃas de enlaces', '', 2, 'js/ThemeOffice/categories.png',
0, ''),
(7, 'Contactos', 'option=com_contact', 0, 0,
'', 'Editar detalles de contacto', 'com_contact',
0, 'js/ThemeOffice/user.png', 1, ''),
(8, 'Gestión
de Contactos', '', 0, 7, 'option=com_contact',
'Editar detalles de contacto', 'com_contact', 0,
'js/ThemeOffice/edit.png', 1, ''), ... |
Al hacer la restauración, en la nuevas tablas se verán
los caracteres (los hemos resaltado en el ejemplo anterior)
tal como aparecen en el archivo SQL. Para evitarlo hay que,
antes de nada, abrir el archivo SQL y añadir en la parte
superior la instrucción siguiente: SET
NAMES utf8;
Veremos ahora que los caracteres
especiales aparecen en los registros de las tablas tal como
estaban en la base de datos original. |