ホームページ > バックエンド開発 > PHPチュートリアル > `json_encode()` が単一引用符で囲まれたプロパティに対して null 値を返すのはなぜですか?

`json_encode()` が単一引用符で囲まれたプロパティに対して null 値を返すのはなぜですか?

Susan Sarandon
リリース: 2024-11-02 00:04:29
オリジナル
656 人が閲覧しました

Why is `json_encode()` returning null values for properties with single quotes?

JSON エンコードの失敗: 一重引用符による不一致の解決

開発者は、PHP の json_encode() 関数を使用してオブジェクトをエンコードしようとすると、サイレント エラーに頻繁に遭遇します。このコンテキストで、stdClass オブジェクトをエンコードすると一重引用符を含むプロパティの値が null になるという問題が発生しました。

分析

問題を調査したところ、根本的な原因は、json_encode() が ASCII 範囲外の文字を正しく処理できないことであることが判明しました。 16 進ダンプでは x92 として表される単一引用符文字が特に問題でした。

解決策

この問題を解決するには、データがencoded は UTF-8 で適切にエンコードされています。これは、使用する API:

  • 古い (非推奨) API: mysql_set_charset("utf8")
  • mysqli: mysqli_set_charset("utf8")
  • PDO: charset パラメーターを接続文字列に追加するか、PHP 5.3.6 以前を使用している場合は SET NAMES utf8 を実行します。 .

代替アプローチ

代替ソリューションには、utf8_decode() を使用してテキストを正しくエンコードされた形式に変換することが含まれます。ただし、テキストが ISO-8859-1 でエンコードされていることを前提としているため、常に望ましい結果が得られるとは限りません。

以上が`json_encode()` が単一引用符で囲まれたプロパティに対して null 値を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート