2013-11-22 183 views
0

我正在我的数据库中存储一些俄罗斯字符。数据正确保存。为此,我将字段的校对从ascii更改为utf8_general_ci。所以数据保存正确。UTF8与php梨DB包不工作

我正在使用php数据对象来获取data.But字符显示为? 。我尝试了set names utf8,但没有运气。如果使用普通的mysql查询,它会返回正确的字符。是否有任何其他办法让它在梨对象

工作这是我使用

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

回答

1

除了正确的查询数据的代码,您还需要正确设置你的HTML编码输出。

使用以下任一:在内容类型http头

  • charset属性
  • 元charset标记
  • 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设置帮助。

+0

我需要添加代码吗?因为我已经添加了html <!DOCTYPE html>; 这就是为什么普通的mysql查询显示的是俄语字符。 – Anish

+0

尝试了您的解决方案。之后,我在屏幕上显示一些其他字符“u0420u0430u0437u043cu0435u0440”还有其他设置吗?谢谢 – Anish

+0

还有别的东西坏了。尝试一个简单的'var_dump($ row-> columnname); die();'你会得到什么? – cweiske