带有php pear DB包的UTF8不工作
我正在将一些俄语字符存储到我的数据库中。数据正在正确保存。为此,我将字段的排序规则从ascii更改为utf8\u general\u ci。因此,数据保存正确 我使用php数据对象来获取数据。但是字符显示为。我尝试了带有php pear DB包的UTF8不工作,php,mysql,utf-8,pear,Php,Mysql,Utf 8,Pear,我正在将一些俄语字符存储到我的数据库中。数据正在正确保存。为此,我将字段的排序规则从ascii更改为utf8\u general\u ci。因此,数据保存正确 我使用php数据对象来获取数据。但是字符显示为。我尝试了设置名称utf8,但没有成功。如果使用普通mysql查询,则返回正确的字符。有没有其他方法可以让它在Pear对象中工作 这是我正在使用的代码 $obj = DB_DataObject::Factory('table'); $obj->exec("set name
设置名称utf8
,但没有成功。如果使用普通mysql查询,则返回正确的字符。有没有其他方法可以让它在Pear对象中工作
这是我正在使用的代码
$obj = DB_DataObject::Factory('table');
$obj->exec("set names utf8");
$obj->query("(SELECT * FROM table");
除了正确查询数据外,还需要在HTML中正确设置输出编码 使用以下任一选项:
- 内容类型http标头中的字符集属性
- 元字符集标签
- xml编码属性
在我们的
/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'
可能是
字符集客户端
设置有帮助。我需要添加它的代码吗?因为我已经在html中添加了;这就是为什么正常的mysql查询会显示俄文字符。请尝试您的解决方案。之后,我在屏幕“u0420u0430u0437u043cu0435u0440”上看到一些其他字符。是否有其他设置?谢谢还有别的东西坏了。尝试一个简单的var\u转储($row->columnname);模具()代码>你得到了什么?伟人实际上返回了正确的格式。但在获取数据后,它将转换为json格式。在那里,事情出了问题