2010-08-10 42 views
1

,當我嘗試運行:mysql的'顯示爲一個€™

mysql -u myUser -pPassword -D myDatabase -h myHost < toInsert.sql 

從我的Ubuntu桌面,MYHOST是一個遠程的Red Hat服務器和toInsert.sql包含它們顯示爲’

我該如何解決這個問題?

注意!是不一樣的'

當我從一臺windows機器運行toInsert.sql與MySQL gui客戶端我沒有這個問題。

謝謝

+0

看起來像一個字符編碼問題,甚至可能只是在終端。 – JKirchartz 2010-08-10 15:36:29

回答

2

--default-character-set=utf8有固定它

所以

mysql -u myUser -pPassword -D myDatabase -h myHost --default-character-set=utf8 < toInsert.sql

感謝您的幫助!

+0

您應該標記接受的最有幫助的答案。 – BalusC 2010-08-11 13:04:15

+0

我不得不等待24小時這樣做,這是由stackoverflow.com強制我會愉快地投其他兩個,但我沒有足夠高的代表尚未。爲了幫助別人,我發佈了修正後給出的mysql手冊頁更仔細的閱讀。 – user401090 2010-08-12 19:23:50

1

聽起來就像你有代碼混淆編碼。定義數據庫中字符串數據的編碼是什麼(我推薦使用UTF-8,但只要您保持一致,任何東西都會起作用),然後確保您使用的所有工具都能實現這一點。

而當UTF-8數據字節被重新解釋爲ISO 8859-1時,「’」是「」。

+0

謝謝你的幫助!它幫助我找到解決方案! – user401090 2010-08-11 13:02:26

1

有兩個地方,這個問題可能是:

首先,您需要檢查在您的數據庫中的一切編碼是UTF-8。

如果這樣不能解決問題,那麼您的數據庫可能是正確的,但您的控制檯無法顯示UTF-8字符。將查詢的輸出傳輸到文件中,並在可顯示UTF-8字符的內容中查看它,看看它是否正確。如果它看起來是正確的,那麼問題是你的終端。

+0

嗯,呃,我已經運行了這個...「mysql> SHOW VARIABLES LIKE'character \ _set \ _%';」我得到︰character_set_client:latin1,character_set_connection:latin1,character_set_database:utf8,character_set_filesystem:binary,character_set_results:latin1,character_set_server:latin1,character_set_system:utf8 它可以拉丁1的踢嗎?但無論如何,我並不是真正有權改變這些。而我的終端顯示的字符很好。但奇怪的是,昨晚(下班回家)我通過一些反向的ssh隧道嘗試了它,它工作。 – user401090 2010-08-11 12:41:07

+0

謝謝你的幫助!它幫助我找到解決方案! – user401090 2010-08-11 13:00:44