我的数据库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
上,因此数据库Krüger
上的内容实际上写为Krüger
。
因此出口有一些错误。我能做什么?我认为问题是phpMyAdmin,因为如果我尝试在HeidiSQL上再次导入表,那么文本是正确的。
答案 0 :(得分:2)
打开导出的文件或将其重新导入数据库时是否看到了问题?如果您在使用phpMyAdmin导入时看到错误,则可能需要通过命令行导入并使用该标志。
--default-character-set=utf8
我也遇到过这些问题并通过命令行导入并使用此标志已经有效。
如果您有从phpMyAdmin导出的文件,可以在命令行上执行此操作。
mysql -u USER -p DATABASENAME --default-character-set=utf8 < dumpfile.sql
答案 1 :(得分:1)
只有通过phpMYAdmin导出数据库并通过mysql命令行导入数据库时才会出现此问题,反之亦然。您可以通过phpMyAdmin或通过命令行导出或导入,也不会遇到问题
答案 2 :(得分:1)
使用SQLyog MySQL GUI软件。
答案 3 :(得分:1)
尽量不要使用任何mysql GUI客户端/ web界面,
mysqldump,mysqlimport超出了您的需求
如果你坚持,
检查HeidiSQL客户端上的编码设置,确保设置为UTF-8