2013-11-22 231 views
0

我正在我的數據庫中存儲一些俄羅斯字符。數據正確保存。爲此,我將字段的校對從ascii更改爲utf8_general_ci。所以數據保存正確。UTF8與php梨DB包不工作

我正在使用php數據對象來獲取data.But字符顯示爲? 。我嘗試了set names utf8,但沒有運氣。如果使用普通的mysql查詢,它會返回正確的字符。是否有任何其他辦法讓它在梨對象

工作這是我使用

$obj = DB_DataObject::Factory('table'); 
    $obj->exec("set names utf8");  
    $obj->query("(SELECT * FROM table"); 

回答

1

除了正確的查詢數據的代碼,您還需要正確設置你的HTML編碼輸出。

使用以下任一:在內容類型http頭

  • charset屬性
  • 元charset標記
  • 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設置幫助。

+0

我需要添加代碼嗎?因爲我已經添加了html <!DOCTYPE html>; 這就是爲什麼普通的mysql查詢顯示的是俄語字符。 – Anish

+0

嘗試了您的解決方案。之後,我在屏幕上顯示一些其他字符「u0420u0430u0437u043cu0435u0440」還有其他設置嗎?謝謝 – Anish

+0

還有別的東西壞了。嘗試一個簡單的'var_dump($ row-> columnname); die();'你會得到什麼? – cweiske