UTF8与php pear DB包无法正常工作

时间:2013-11-22 12:31:15

标签: php mysql utf-8 pear

我将一些俄语字符存储到我的数据库中。数据正确保存。为此,我已将字段的排序从ascii更改为utf8_general_ci。因此数据正确保存。

我使用php数据对象来获取数据。但是字符显示为??? 。我试过set names utf8,但没有运气。如果使用普通的mysql查询,则返回正确的字符。有没有其他方法可以使它在Pear对象中工作

这是我正在使用的代码

    $obj = DB_DataObject::Factory('table');
    $obj->exec("set names utf8");       
    $obj->query("(SELECT * FROM table");

1 个答案:

答案 0 :(得分:1)

除了正确查询数据外,还需要在HTML中正确设置输出编码。

使用以下任何一项:

  • 内容类型http标头中的charset属性
  • meta charset tag
  • xml编码属性

有关详细信息,请参阅Wikipedia


在我们的/etc/mysql/my.cnf中,我们也有:

collation_server=utf8_general_ci
character_set_server=utf8

skip-character-set-client-handshake
character-set-client = utf8

init_connect    = 'SET collation_connection = utf8_general_ci'
init_connect    = 'SET NAMES utf8'

可能character-set-client设置有帮助。