Warum schlägt „json_encode()' beim Kodieren einzelner Anführungszeichen in PHP mit Windows-1252-Kodierung fehl?

Patricia Arquette
Freigeben: 2024-10-27 08:15:31
Original
524 Leute haben es durchsucht

Why Does `json_encode()` Fail When Encoding Single Quotes in PHP with Windows-1252 Encoding?

PHPs json_encode-Fehler mit einfachen Anführungszeichen

In einem Szenario mit einem PHP-stdClass-Objekt ($post) funktioniert die json_encode()-Funktion Die Eigenschaft „post_title“ kann unerwartet nicht codiert werden, was zu einem Nullwert in der JSON-Ausgabe führt. Trotz der scheinbaren UTF-8-Kodierung der Datenbank scheint es, dass der Datenabrufprozess möglicherweise nicht richtig konfiguriert ist.

Ursache: Falsche Kodierung

Der JSON Das Kodierungsproblem ist auf eine falsche Kodierung des einfachen Anführungszeichens im post_title zurückzuführen. Konkret ist das Zeichen in Windows-1252 kodiert, was zu einem Hexadezimalwert von 92 führt, was kein gültiges UTF-8-Zeichen ist.

Lösung: Datenbankverbindungskodierung festlegen

Um dieses Problem zu beheben, ist es notwendig, die Datenbankverbindungskodierung auf UTF-8 einzustellen. Die verwendete Methode hängt von der verwendeten API ab:

  • MySQL: mysql_set_charset("utf8")
  • MySQLi: mysqli_set_charset("utf8")
  • PDO (PHP > ;= 5.3.6): Zeichensatzparameter in Verbindungszeichenfolge
  • PDO (frühere Versionen): SET NAMES utf8

Zusätzliche Überlegungen

Es ist wichtig zu beachten, dass durch das Festlegen der Verbindungskodierung sichergestellt wird, dass aus der Datenbank abgerufene Daten ordnungsgemäß in UTF-8 kodiert werden. Wenn die Daten jedoch in einer falschen Codierung gespeichert sind, wie z. B. Windows-1252, kann eine manuelle Konvertierung über utf8_encode() oder auf andere Weise erforderlich sein.

Das obige ist der detaillierte Inhalt vonWarum schlägt „json_encode()' beim Kodieren einzelner Anführungszeichen in PHP mit Windows-1252-Kodierung fehl?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!