Heim  >  Artikel  >  Backend-Entwicklung  >  Wie dekodiere und kodiere ich JSON mit Unicode-Zeichen in PHP?

Wie dekodiere und kodiere ich JSON mit Unicode-Zeichen in PHP?

Linda Hamilton
Linda HamiltonOriginal
2024-10-31 13:18:30432Durchsuche

How to Decode and Encode JSON with Unicode Characters in PHP?

PHP-Dekodierung und Kodierung von JSON mit Unicode-Zeichen

Probleme bei der Dekodierung von Unicode-Zeichen

Beim Versuch Beim Dekodieren von JSON, das Unicode-Zeichen enthält, können Probleme auftreten, wenn die Zeichen innerhalb bestimmter Grenzen liegen. Insbesondere dürfen Zeichen wie „“ und „“ nicht in JSON-Strings vorkommen. Darüber hinaus sind Steuerzeichen nicht zulässig.

UTF-8-Kodierung und -Dekodierung

Um dieses Problem zu beheben, können Sie utf8_encode verwenden, um die Dekodierung der Zeichenfolge mit json_decode zu ermöglichen. Dies kann jedoch dazu führen, dass die Zeichen verstümmelt werden. Beispielsweise würde „Odómetro“ in „Odómetro“ umgewandelt.

Neukodierung und Zeichen-Escapezeichen

Bei der Neukodierung des Arrays wird das Zeichen maskiert ASCII, was gemäß der JSON-Spezifikation korrekt ist: „Tag“=>“Odu00f3metro“. Um das Zeichen aufzuheben, können Sie die Option JSON_UNESCAPED_UNICODE für „json_encode“ verwenden. Dies ist jedoch nur in PHP 5.4 oder höher verfügbar.

Alternative Lösung mit Regex

Wenn Sie auf PHP 5.3 beschränkt sind, können Sie eine Regex-basierte Lösung verwenden Lösung:

$json = json_encode($array, JSON_UNESCAPED_SLASHES);

// Replace escaped unicode characters with their UTF-8 equivalents
$json = preg_replace('/\\u([0-9a-fA-F]{4})/', '&#x;', $json);

Durch die Verwendung des Flags JSON_UNESCAPED_SLASHES verhindern Sie das Schrägstriche () werden nicht in der JSON-Zeichenfolge maskiert. Das Regex-Muster gleicht dann maskierte Unicode-Zeichen (u####) ab und ersetzt sie durch ihre UTF-8-Entsprechungen.

Das obige ist der detaillierte Inhalt vonWie dekodiere und kodiere ich JSON mit Unicode-Zeichen in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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