2011-05-17 19 views
0

我有一个Zend项目,我使用mysql - 我的数据库连接排序规则是utf8_unicode_ci和我的表排序规则是utf8_unicode_ci。我已经成功地存储包含UTF8字符,但是当我尝试从数据库获取他们他们打破如一些记录:Zend项目 - MySQL不提取UTF8

DVI•1500HD取为DVI•1500HD

我试过设置resources.db.params.charset = utf8在application.ini中,但它不能解决问题。

任何想法?

回答

2

尝试将以下行添加到您的配置。

resource.db.params.driver_options.1002 = "SET NAMES utf8" 

关于您的Zend Framework版本,需要此命令来更改mysql的传输编码。给定的命令是在对数据库适配器进行类型化时执行的第一件事情。

+0

它那直到不工作:(我试图直接设置 $ db = Zend_Db_Table :: getDefaultAdapter(); $ db-> query('SET NAMES UTF8');没有成功。 – 2011-05-17 08:40:53

+0

您正在使用什么Zend_Db_Adapter类。我使用Zend_Db_Adapter_Pdo_Mysql获得了最佳体验。 – 2011-05-17 08:43:42

+0

我正在使用该适配器,这是非常奇怪的...... – 2011-05-17 08:44:27

0

也许你从数据库中得到的内容是UTF8,但它在你的演示文稿中出错了。在网页中展示时是否发送正确的内容类型标题?并且该页面还保存为UTF8文件?

0

我尝试从上面所有的方案中,在端部固定与此在freetds.conf

(/etc/freetds/freetds.conf)

[MYSERVER]

TDS版本= 8.0Hz

客户端的charset = UTF-8