我在原生PHP 5實現json_encode()
中遇到了一個有趣的行爲。顯然,在將對象序列化爲json字符串時,編碼器會將包含「捲曲」引號的任何屬性都置空,這種類型可能會在啓用自動轉換的情況下複製粘貼出MS Word文檔。JSON編碼和捲曲引號
這是函數的預期行爲嗎?我能做些什麼來迫使這些角色轉向基本的等值?我檢查了數據庫返回的數據和管理頁面之間的字符編碼不匹配,插入它和一切正確設置 - 它絕對看起來像編碼器只是因爲這些字符拒絕這些值。有其他人遇到過這種行爲嗎?
編輯:
澄清;
MSWord將採用標準引號和插頁,並將它們轉換爲更審美的「花哨」或「捲曲」引號。這些字符放置在內容管理器中時會導致問題,這些內容管理器在其編輯界面(在html中)與數據庫編碼之間存在字符集不匹配。不過,這不是問題。例如,我有代表一個人的個人資料和字符串JSON_OBJECT:
Jim O’Shea
爲apostraphe作爲UTF編碼\u2019
會出來空的JSON對象時,從數據庫中直接獲取json_encoded。
{"model_name":"Bio","logged":true,"BioID":"17","Name":null,"Body":"Profile stuff!","Image":"","Timestamp":"2011-09-23 11:15:24","CategoryID":"1"}
你能舉一個具體的例子嗎? –
我不確定你的意思是「將任何包含'捲曲'花括號的字符串屬性歸零」。但是,我測試了'json_decode()'字符串''{「{a}」:「{b,c,d}」}「'並且它按預期工作。 – 2011-09-23 15:12:51
@Jack curly **引號,**不是大括號。 –