Posts Tagged ‘utf8’

站点转移到Dreamhost后的字符编码问题

Monday, March 27th, 2006

由于Dreamhost默认的数据库字符编码为Latin1而不是utf8,这样当你撰写中文文章时,尽管PHP的解析没问题,站点上可以看到正常显示中文,但如果你进入PHPMyAdmin,就会发现那些中文都变成了乱码,这样会导致数据库备份无法显示中文,也就失去了意义(当你导入以前站点备份的数据(通常编码为Utf8)时,也会出现同样的问题),解决办法可以参考这篇文章:WordPress数据库恢复编码转换[解决乱码问题]。里面已经说得很详细了,对于像我这样刚刚使用Dreamhost服务的人来说很有用,这里我认为有两步最为关键:

  • 创建一个新的数据库,用phpmyadmin进入界面后,点击左边你的数据库名后,右上方会有“Operations/操作”按钮,进入后最下面有“Collation:/整理: ”选项,选择 相应的utf8后按“go/执行”确认【这个步骤是把数据库默认编码设置成utf8】
    ——注意,当你第一次使用Dreamhost的PHPMyAdmin时,它会自动将界面语言、MySQL字符集、MySQL连接校对都变成utf8编码格式,但其默认的数据库编码却仍然是Latin1,所以千万不要被骗了,一定要按照这步所指示的将Collation变为utf8才可以。
  • 更改WordPress程序中wp-includes/wp-db.php的文件:选择在56行处添加
    $this->query(”SET NAMES ‘utf8′ “);
    复制语句时小心字体哦,我复制的代码加入后报错,原来那些>”‘什么的都不正确。
    更改后的情况是:
    }
    $this->query(”SET NAMES ‘utf8′ “);
    $this->select($dbname);
    }
    ———注意,原文中这段代码中的引号有问题,所以最好不要复制/粘贴,还是自己手输吧,单引号和双引号都要用英文半角输入,否则会抱错。