Heim  >  Artikel  >  Backend-Entwicklung  >  Was tun, wenn PHP-JSON in Array-verstümmelten Code konvertiert wird?

Was tun, wenn PHP-JSON in Array-verstümmelten Code konvertiert wird?

PHPz
PHPzOriginal
2023-04-27 16:39:13556Durchsuche

Beim Konvertieren von PHP-JSON in ein Array treten häufig Probleme mit verstümmeltem Code auf. Die Ursache dieses Problems liegt in der Inkonsistenz der Zeichensätze.

Der Standardzeichensatz von Java, Python und anderen Sprachen ist utf-8, während der Standardzeichensatz von PHP ISO-8859-1 ist. Wenn daher bei der Verarbeitung von JSON-Strings der Zeichensatz des JSON-Strings utf-8 und der Zeichensatz von PHP ISO-8859-1 ist, wird das konvertierte Array verstümmelt.

Lassen Sie uns einen Blick darauf werfen, wie Sie dieses Problem lösen können.

1. Geben Sie den Zeichensatz der JSON-Zeichenfolge an

Wenn wir den Zeichensatz der JSON-Zeichenfolge kennen, können wir das Problem lösen, indem wir den Zeichensatz angeben.

Beispielcode:

$json_str = iconv('utf-8','ISO-8859-1',$json_str); //将json字符串的字符集从utf-8转换为ISO-8859-1
$arr = json_decode($json_str, true); //将json字符串转换成数组

2. Ändern Sie den PHP-Standardzeichensatz

Wenn wir den Zeichensatz der JSON-Zeichenfolge nicht kennen oder eine große Anzahl von JSON-Zeichenfolgen verarbeiten müssen, können wir den PHP-Standardzeichensatz ändern. Auf diese Weise entstehen bei der Verarbeitung einer JSON-Zeichenfolge keine verstümmelten Zeichen.

Die Möglichkeit, den Standardzeichensatz von PHP zu ändern, besteht darin, ihn in der Datei php.ini zu ändern. Wir können diesen Vorgang durch die folgenden Schritte abschließen:

  1. Öffnen Sie die php.ini-Datei

Geben Sie den folgenden Befehl in das Terminal ein, um die php.ini-Datei zu öffnen:

sudo vi /etc/php/7.3/apache2/php.ini
  1. Ändern Sie den Standardzeichensatz

In Suchen Sie in der Datei php.ini nach den folgenden beiden Zeilen, entfernen Sie die Kommentarzeichen und ändern Sie den Zeichensatz in utf-8:

;default_charset = "iso-8859-1"
default_charset = "utf-8"
  1. Apache neu starten

Nach dem Speichern der Datei php.ini müssen Sie Apache neu starten, damit die Änderungen übernommen werden Wirkung:

sudo service apache2 restart
  1. Test

Nachdem wir den PHP-Standardzeichensatz geändert haben, können wir testen, ob wir den JSON-String korrekt analysieren können. Beispielcode:

$arr = json_decode($json_str, true); //将json字符串转换成数组

Zusammenfassung

Json-to-Array-verstümmelter Code ist ein häufiges Problem, aber auch ein leicht zu lösendes Problem. Wir können dieses Problem lösen, indem wir den Zeichensatz des JSON-Strings angeben oder den PHP-Standardzeichensatz ändern. In jedem Fall müssen Sie das Konzept der Zeichensätze verstehen, um die Konvertierung korrekt durchführen zu können.

Das obige ist der detaillierte Inhalt vonWas tun, wenn PHP-JSON in Array-verstümmelten Code konvertiert wird?. 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