我正在将一些俄语字符存储到我的数据库中。数据保存正确。为此,我已将字段的排序规则从 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");
最佳答案
除了正确查询数据之外,您还需要正确设置 HTML 中的输出编码。
使用其中任何一个:
- 内容类型 http header 中的字符集属性
- 元字符集标记
- 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
设置可能会有所帮助。
关于php - UTF8 与 php pear DB 包不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20144994/