0
我有一個寫在PHP上的準備語句,它從MySQL中檢索一個字符串,然後我使用json_encode將數據發送到客戶端,並且它工作得很完美。顛倒引用「json編碼返回null - PHP
當MySQL中的字符串包含「」時會出現問題。
我應該對它進行不同的編碼嗎?或者使用一些特殊的標誌?或者有其他解決方案?
感謝
我有一個寫在PHP上的準備語句,它從MySQL中檢索一個字符串,然後我使用json_encode將數據發送到客戶端,並且它工作得很完美。顛倒引用「json編碼返回null - PHP
當MySQL中的字符串包含「」時會出現問題。
我應該對它進行不同的編碼嗎?或者使用一些特殊的標誌?或者有其他解決方案?
感謝
我應該編碼不同的看法?
我會說是的。顯然你從數據庫收到的字符串不是UTF-8編碼的。這就是問題所在,因爲json_encode
Docs需要UTF-8編碼的字符串。如果它們無效,它將返回NULL
- 因爲沒有有效的數據要編碼。
您可以通過檢查json_last_error
Docs函數的最後一個錯誤來驗證。
因此,當您從數據庫中查詢數據時,通過設置數據庫客戶端編碼來告訴數據庫服務器您期望使用UTF-8編碼數據。請查閱您使用的數據庫客戶端庫的文檔,並將其記錄在此處。
另請參閱json_encode() non utf-8 strings?它顯示瞭如果您不想更改數據庫客戶端連接,您可以重新編碼字符串本身。
從CLI(輸入到\ u201c)輸入時,它對我的編碼很好。你使用的是什麼版本的PHP? – abesto 2012-03-18 12:33:38
null從哪裏返回?你可以更具體一些,也許有一些代碼? – dldnh 2012-03-18 12:37:45