Heim > Backend-Entwicklung > PHP-Tutorial > Wie gehen Sie mit Unicode-Zeichen in PHP um, wenn Sie JSON-Daten dekodieren und kodieren?

Wie gehen Sie mit Unicode-Zeichen in PHP um, wenn Sie JSON-Daten dekodieren und kodieren?

Barbara Streisand
Freigeben: 2024-11-03 13:26:02
Original
644 Leute haben es durchsucht

How do you handle Unicode characters in PHP when decoding and encoding JSON data?

JSON mit Unicode-Zeichen in PHP dekodieren und kodieren

Bei der Arbeit mit JSON-Daten, die Unicode-Zeichen enthalten, ist es wichtig, die Zeichenintegrität während der Dekodierung zu wahren und Kodierung. In PHP kann der Umgang mit Unicode-Zeichen mehrere Herausforderungen mit sich bringen.

JSON mit Unicode-Zeichen dekodieren

Standardmäßig erwartet die json_decode()-Funktion von PHP, dass JSON-Zeichenfolgen UTF-8 sind codiert. Wenn Unicode-Zeichen nicht in UTF-8 kodiert sind, werden sie nicht korrekt dekodiert. Um dieses Problem zu beheben, verwenden Sie utf8_decode(), bevor Sie die JSON-Zeichenfolge dekodieren:

<code class="php">$json = '{"Tag":"Odómetro"}';
$decoded = json_decode(utf8_decode($json));</code>
Nach dem Login kopieren

JSON mit Unicode-Zeichen kodieren

Nach dem Ändern der JSON-Daten ist eine Kodierung erforderlich es zurück in einen JSON-String. Standardmäßig maskiert json_encode() Unicode-Zeichen, um den JSON-Standards zu entsprechen. Um zu verhindern, dass Unicode-Zeichen maskiert werden, verwenden Sie das Flag JSON_UNESCAPED_UNICODE:

<code class="php">$encoded = json_encode($decoded, JSON_UNESCAPED_UNICODE);</code>
Nach dem Login kopieren

Encapsing codierter Unicode-Zeichen aufheben

Wenn Sie codierte Unicode-Zeichen demaskieren müssen, können Sie html_entity_decode verwenden ()-Funktion:

<code class="php">$unescaped = html_entity_decode($encoded);</code>
Nach dem Login kopieren

PHP-Versionen

Beachten Sie, dass das JSON_UNESCAPED_UNICODE-Flag nur in PHP-Version 5.4 und höher verfügbar ist. In früheren Versionen können Sie einen regulären Ausdruck verwenden, um nach Unicode-Zeichen zu suchen und deren Escapezeichen aufzuheben:

<code class="php">$regex = '/\\u([0-9a-fA-F]{4})/';
$unescaped = preg_replace($regex, '&#x\1;', $encoded);</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie gehen Sie mit Unicode-Zeichen in PHP um, wenn Sie JSON-Daten dekodieren und kodieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage