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>
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>
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>
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>
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!