2015-02-24 82 views
0

我想我對此有超過9000的問題,並且我已經閱讀了很多這方面的文章以及類似的問題,但是我仍然無法在Postgre表中獲得清晰的數據。MySQL到PostrgreSQL編碼問題

我有一個MySQL數據庫,默認設置爲utf-8,網站的charset也設置爲utf。但是如果我查看DB,我會看到Ð」ÐΜкор。 但是,網頁上的輸出很好。

我現在知道,這是cp1252,它沒有設置(據我所知)。

如果我將數據傳輸到Postrgre,輸出全部像Ð」ÐΜкор與MySQL相對,具有相同的數據和設置。

事情我已經嘗試:

  1. 轉儲SQL文件,重新創建數據庫(確保它是UTF),執行SQL - 沒有結果;
  2. mysqldump dbname -u root -p --default-character-set=latin1 > dump.sql - 無結果;
  3. 我試過轉儲轉儲文件:iconv -f cp1252 -t utf-8 dump.sql -> new.sql - 沒有結果;

我wouldn've張貼了這個問題,但我真的浪費了很多時間在這個已經和我需要幫助,

+0

因此,加載/重做是好的,但一旦你檢索他們的字符出現亂碼?嘗試在您的客戶端/前端設置'SET client_encoding = cp1252;'(或latin9) – joop 2015-02-24 14:36:14

+0

嗨,@joop,感謝您的評論。但是我可以將此解決方案看作是一項工作。我毫不懷疑它會清除輸出(我曾用過這個),但它仍然是一個垃圾它是一個數據庫。 – 2015-02-25 09:07:44

回答

0

找到一種方法,我需要的一切轉換,很高興數據庫沒有真的很大。它是通過這個功能:

mb_convert_encoding($model->text, 'cp1252', 'utf8')