ホームページ >バックエンド開発 >PHPチュートリアル >PHP での JSON エンコード中に不正な UTF-8 文字を処理するにはどうすればよいですか?

PHP での JSON エンコード中に不正な UTF-8 文字を処理するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-19 08:00:03838ブラウズ

How to Handle Malformed UTF-8 Characters during JSON Encoding in PHP?

PHP JSON エンコーディング中の不正な UTF-8 文字の修正

はじめに:

JSON はプラットフォームに依存しない方法でデータを送信および保存するための一般的なデータ形式。ただし、UTF-8 以外の文字を含むデータをエンコードしようとすると問題が発生する可能性があります。この説明では、PHP での JSON エンコード中に発生する一般的な問題、特に不正な UTF-8 文字に関連する問題について説明します。

問題:

json_encode($data) を使用してロシア語の文字を含むフィールドを含む配列をエンコードすると、テキスト内の不正な形式の UTF-8 文字によりエラーが発生する可能性があります。 mb_detect_encoding() を使用すると、フィールドが UTF-8 として正しくエンコードされていることがわかります。データに対して utf8_encode を使用しようとすると、エラーは回避されますが、データの整合性が損なわれます。

解決策:

問題は、 -UTF-8 でエンコードされたと思われるテキスト内の UTF-8 文字。これを解決するには、テキストから UTF-8 以外の文字を削除し、エンコードが一貫して保たれるようにします。

次のコードは、この問題に効果的に対処します。

<code class="php">$data['name'] = mb_convert_encoding($data['name'], 'UTF-8', 'UTF-8');</code>

このコードは、次のように変換します。 $data 配列の 'name' キーの値を UTF-8 エンコーディングに変換し、非 UTF-8 文字を同等の UTF-8 文字で上書きします。結果は、JSON として正常にエンコードできる UTF-8 準拠の文字列です。

以上がPHP での JSON エンコード中に不正な UTF-8 文字を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。