2011-05-20 117 views
0

我有我的mysql数据库这种表:问题导出,导入表

CREATE TABLE `users` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, 
`name` VARCHAR(255) NOT NULL, 
`surname` VARCHAR(255) NOT NULL, 
`nickname` VARCHAR(255) NOT NULL, 
`password` VARCHAR(255) NOT NULL, 
`mail` VARCHAR(255) NOT NULL, 
`country` VARCHAR(255) NOT NULL, 
`birthday` VARCHAR(255) NOT NULL DEFAULT '0000-00-00', 
`accessres` TINYINT(11) UNSIGNED NOT NULL DEFAULT '0', 
`admin` TINYINT(11) UNSIGNED NOT NULL DEFAULT '0', 
`datereg` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', 
`forum_ban` TINYINT(11) UNSIGNED NOT NULL DEFAULT '0', 
`last_access` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', 
PRIMARY KEY (`id`) 
) 
COLLATE='utf8_general_ci' 
ENGINE=MyISAM 
ROW_FORMAT=DEFAULT 
AUTO_INCREMENT=209 

怎么可以看到,整理是utf8_general_ci。问题是当我使用HeidiSQL(6.0)-phpMYADMIN导出这个表时。

例如,如果我有像Krüger这样的数据,它会导出为导入为Krüger! 我的整个应用程序在utf8,等等DB Krüger真的写成Krüger

所以有一些错误的出口。我能做什么?我认为问题是phpMyAdmin,因为如果我尝试在HeidiSQL上再次导入表格,则文本是正确的。

+0

据我所知选择时HeidiSQL做了适当的处理UFT8。你是如何验证出口的?是否有可能你正在查看导出的程序无法应对utf8?如果使用较旧的软件查看此类导出,则可能会显示一个合适的编码特殊字符,例如您提供的示例。 – Bjoern 2011-05-20 11:06:13

+0

我正在使用Scite Text Editor ...!事实上,如果我再次在HeidiSQL上导入,字符串是正确的:O – markzzz 2011-05-20 11:11:24

+0

再次...您是如何验证导出的?在utf8中,德文'ü'实际上被编码为'C3 BC',这将被不支持utf8的观众(或未被配置为将其显示为utf8!的观众)解释为'Ã''。如果你的导出在这个位置显示'C3 BC'(尝试使用HEX编辑器),导出不会被破坏,但是其他的东西是。 – Bjoern 2011-05-20 11:12:41

回答

2

你看到的问题,当您打开导出的文件或者其重新导入数据库。如果使用phpMyAdmin导入时看到错误,则可能需要通过命令行导入并使用标志。

--default-character-set=utf8 

我遇到这些问题,并通过命令行导入并使用此标志已工作。

如果你从phpMyAdmin的导出的文件,你可以通过在命令行上做这个导入。

mysql -u USER -p DATABASENAME --default-character-set=utf8 < dumpfile.sql 
+0

是的问题是,当我导入phpMYADMIN。你可以更具体的“命令行”? – markzzz 2011-05-20 11:13:08

+0

@markzzz更新了答案。 – 2011-05-20 11:16:32

+0

我做不到!我与一个界面在线... – markzzz 2011-05-20 11:33:56

1

只有当您通过phpMYAdmin导出数据库并通过mysql命令行导入数据库时​​才会出现此问题,反之亦然。你要么出口或进口通过phpmyadmin或通过命令行,你不会面对问题

+0

其同样的事情哥们或你通过命令行导入时也添加--default-character-set = utf8然后将没有问题。 – Vineet1982 2011-05-20 11:11:07

+0

不!问题是当我在HeidiSQL上导出并使用phpMYADMIN导入时... – markzzz 2011-05-20 11:12:40

+0

他们在导入和导出时使用相同的东西,这就是为什么没有问题,如果你从插件到命令行会导致问题,反之亦然 – Vineet1982 2011-05-20 11:15:34

1

使用SQLyog的MySQL的GUI软件。

1

尽量不要使用任何的MySQL GUI客户端/ Web界面,
mysqldumpmysqlimport比你需要

如果你坚持更多,
支票上HeidiSQL客户端的编码设置,确保设置为UTF-8