2013-07-29 70 views
0

我使用下面的命令來導出數據從我的數據庫爲csv:mysqldump的爲csv在UTF8

mysqldump -u root -p -T/home/xxx/stock_dump -t --fields-terminated-by=";" products stock 

但數據庫是UTF-8和該命令出口UTF-8字符正確,例如

ŻYWIEC ZDRÓJĂÂťYWIEC ZDRĂâJ

如何導出它在正確的UTF-8格式?

添加--default-character-set=utf8根本沒有幫助。

或者如果這是不可能的,我如何後處理它最簡單的方法? iconv能做些什麼嗎?

+0

是你的文件可能不會顯示爲utf8?它是否有BOM? – x4rf41

+0

你確定導出的文件不是UTF8格式嗎?如果是這樣,但是你閱讀它的方式是將它解釋爲別的東西?像這樣的編碼問題令人討厭,因爲每次查看數據*解釋*並可能被錯誤解釋。如果您的文本格式已知,您可以隨時檢查編碼的不一致性。 – tadman

+0

我確定它是無效的,因爲當我通過PHP生成它時,它具有完全不同的字符並且顯示正確 –

回答

0

mysqldumpproduces UTF-8 encoded dumps除非另有告訴(或除非你使用一個真正的,mysqldump真的舊版本 - 反正,您使用的--default-character-set=utf8正確解決了,)。

您的文本編輯器無法正確識別UTF-8,或者數據庫中的數據已被錯誤編碼。

+0

數據庫中的數據可能通過Latin1連接放入UTF8表中。但是當我使用PHP或MySQL客戶端時,它會正確顯示值。不知道我該如何檢查出來。 –