2012-03-18 37 views
0

我有一個寫在PHP上的準備語句,它從MySQL中檢索一個字符串,然後我使用json_encode將數據發送到客戶端,並且它工作得很完美。顛倒引用「json編碼返回null - PHP

當MySQL中的字符串包含「」時會出現問題。

我應該對它進行不同的編碼嗎?或者使用一些特殊的標誌?或者有其他解決方案?

感謝

+0

從CLI(輸入到\ u201c)輸入時,它對我的​​編碼很好。你使用的是什麼版本的PHP? – abesto 2012-03-18 12:33:38

+2

null從哪裏返回?你可以更具體一些,也許有一些代碼? – dldnh 2012-03-18 12:37:45

回答

1

我應該編碼不同的看法?

我會說是的。顯然你從數據庫收到的字符串不是UTF-8編碼的。這就是問題所在,因爲json_encode­Docs需要UTF-8編碼的字符串。如果它們無效,它將返回NULL - 因爲沒有有效的數據要編碼。

您可以通過檢查json_last_error­Docs函數的最後一個錯誤來驗證。

因此,當您從數據庫中查詢數據時,通過設置數據庫客戶端編碼來告訴數據庫服務器您期望使用UTF-8編碼數據。請查閱您使用的數據庫客戶端庫的文檔,並將其記錄在此處。

另請參閱json_encode() non utf-8 strings?它顯示瞭如果您不想更改數據庫客戶端連接,您可以重新編碼字符串本身。