Я хочу импортировать файл дампа обратно в другую базу данных utf8, это тоже будет работать?
В mysql charset назначаются на многих уровнях (connection, table, field, ecc).
Предполагая, что все эти уровни в старой базе данных имеют кодировку GBK, а все эти уровни в новой базе данных - кодировку utf8, вам просто нужно заменить объявление кодировки для каждого уровня.
Представьте, что это часть файла дампа dump.sql
CREATE TABLE IF NOT EXISTS `mytable` (
`id` int(11) NOT NULL auto_increment,
`myname` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=1065 ;
, что вам нужно, чтобы преобразовать его в
CREATE TABLE IF NOT EXISTS `mytable` (
`id` int(11) NOT NULL auto_increment,
`myname` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1065 ;
, с которым вы можете сделать это sed
sed -i 's/gbk/utf8/g' dump.sql
теперь файл готов для правильного импорта в базу данных utf8