我有一個包含花(智能?)撇號MySQL數據庫(utf8_general_ci)字段:Owner’s...
在PHP的json_encode截斷之前轉義JSON撇號?
這將打印精細,無特殊處理,如果我訪問從數據庫中拉它的PHP頁面。但是,我試圖通過另一頁上的$ .getJSON請求來訪問它,所以我使用了PHP的json_encode。它截斷該值,以便它讀取Owner
,然後成功編碼其餘數據。如果我在json_encode之前在字段上使用PHP的utf8_encode,它將包含’
編碼爲\u0092
的完整值,然後它不會在頁面上打印任何內容,並給我Owners
。 PHP的htmlentities
和htmlspecialchars
不起作用。
查看Chrome工具中的請求,Owner’s
在$ .getJSON頁面上顯示爲Owner�s
。
任何人都可以幫助我嗎?我已經閱讀了關於SO和網絡的其他問題,但我找不到任何有用的信息,而且我沒有用JSON進行太多的工作。
感謝您的閱讀。
'如果我使用PHP的函數utf8_encode在球場上我json_encode之前,它包括與全部價值的「編碼爲\ u0092'這聽起來像這條路看起來不錯。你能詳細說明這種情況到底失敗嗎? Chrome的工具看起來如何? – 2013-02-26 19:25:19
我認爲你需要爲你輸出的頁面設置編碼。另外,您可能需要解碼UTF-8。 – crush 2013-02-26 19:40:24
@Pekka:在頁面上,「Owner \ 0092s」呈現爲「Owners」,在Chrome的Tools中,它看起來像是「Owner \ 0092s」。 @crush,我擔心這不是正確轉換,因爲搜索\ 0092表明它是一個控制字符(?)而不是一個撇號? http://stackoverflow.com/questions/11030851/jquery-parsejson-u0092-character-is-not-parsed – 2013-02-26 19:56:53