php - UTF8 与 php pear DB 包不起作用

标签 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");

最佳答案

除了正确查询数据之外,您还需要正确设置 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/

相关文章:

php - Laravel 4 - 如何在 View 中访问 MySQL 数据库

php - 如何在 php 中获取 yahoo weather api json 响应

php - 如何在 PHP 中显示价格范围?

mysql - PDO:rowCount() 和 SQL COUNT(col) 之间的区别

mysql - 何时在 MySQL 中使用单引号、双引号和反引号

php - UTF-8贯穿始终

php - 希伯来语字体未显示

java - 将 cp-1252 编码为 utf-8?

php - Laravel 不能在原始 SQL 查询中使用 'SET'?

php - 如何在javascript中使用json数组