JSON 編碼因單引號失敗:PHP 之謎
使用PHP 的json_encode 函數將stdClass 物件轉換為JSON 時,您可能會遇到令人費解的故障導致財產價值損失。讓我們探討這個問題並找到解決方案。
給定的範例示範了行為:
<code class="php">$post = new stdClass(); $post->post_title = "Alumnus' Dinner Coming Soon"; // note the single quote $json = json_encode($post); echo $json; // outputs {"ID":"12981","post_title":null,"post_parent":"0","post_date":"2012-01-31 12:00:51"}</code>
由於單引號的格式問題,產生的 JSON 缺少「post_title」屬性。 JSON 的規範規定屬性鍵或值中不允許使用單引號,json_encode 嚴格遵守這一點。
要解決此問題,請依照下列步驟操作:
1.確保UTF-8 編碼:
資料庫連線必須指定UTF-8編碼才能正確檢索資料。依照您的連線方法:
2。解碼單引號:
如果遇到字元編碼問題,請考慮明確解碼單引號。假設您的資料庫為「post_title」返回「校友?晚餐即將到來」:
<code class="php">$post->post_title = str_replace("\x92", "'", $post->post_title);</code>
這會將錯誤字元轉換為有效的單引號,確保正確的 JSON 編碼。
以上是為什麼 PHP 的 `json_encode` 屬性值中的單引號會失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!