2015-02-24 84 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')