2012-07-17 17 views
3

我想從遠程計算機上的MySQL數據庫複製一個表到我本地機器上的另一個MySQL數據庫。我注意到,在將轉儲導入到本地計算機之後,有一些字符如'?',而不是單引號。MySQL轉儲和導入不保留編碼?

我認爲這是一個編碼問題,所以我進入兩個數據庫並跑show create table posts,接近結束時,我看到CHARSET=utf8。另外,我在轉儲文件上運行file -i,在scp之前和之後都將其保存到我的本地計算機上,並且它們都是utf8。

然而,當我導入此文件,我得到這個前:

attendees—policy makers, 

後:

attendeesâ€」policy makers, 

我不知道爲什麼會這樣,一切都用UTF8,我算什麼我錯過了?

編輯:我在本地使用mysql Ver 14.12 Distrib 5.0.75, for debian-linux-gnu (x86_64)遠程和mysql Ver 14.14 Distrib 5.5.25a, for osx10.7 (i386)

+0

確保在加載轉儲時mysql監視器正在連接utf-8連接。 – 2012-07-17 17:55:42

回答

4

在兩個系統上,你必須檢查你的連接編碼是正確的:

SHOW VARIABLES LIKE 'character_set_%' 

像通常看到的字符編碼是雙重的結果。確保您可以匹配連接和客戶端編碼完全相同。有許多命令行選項可以促進這一點,或者如果您使用的是驅動程序或客戶端,那麼可以調整它。

+0

連接編碼看起來像是latin1,這聽起來像@「Marc B」所暗示的,我會看看我是否可以改變它。 – tlehman 2012-07-17 17:59:29