2011-05-20 116 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