2011-05-17 46 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