UTF-8-Zeichenkodierungsprobleme mit json_encode()
Problembeschreibung
Die Kodierung von UTF-8-Zeichen ist mit der Funktion json_encode() problematisch . Nachdem diese Funktion Werte von LATIN1 nach UTF-8 kodiert, wird die Ausgabe null.
Frage
Wie kann json_encode() verwendet werden, um UTF-8-Werte korrekt zu kodieren, ohne auf Drittanbieter zurückgreifen zu müssen? Partybibliotheken wie Zend Framework?
Antworten
Um dieses Problem zu beheben, folgen Sie diesen Schritten:
-
Erstellen Sie ein leeres Array: Initialisieren Sie ein leeres $rows-Array zum Speichern des codierten Ergebnissatzes.
-
Zeilenwerte codieren: Durchlaufen Sie den Datenbank-Ergebnissatz und konvertieren Sie die Werte jeder Zeile mithilfe von utf8_encode in UTF-8. Speichern Sie die codierten Zeilen im $rows-Array.
-
JSON kodieren und echoen: Übergeben Sie abschließend das $rows-Array an json_encode() und geben Sie das Ergebnis als Echo aus, um das korrekt codierte UTF-8 zu senden Werte an den Webbrowser.
Hier ist ein Beispiel-Codeausschnitt:
<code class="php">// Create an empty array for the encoded resultset
$rows = array();
// Loop over the db resultset and put encoded values into $rows
while($row = mysql_fetch_assoc($result)) {
$rows[] = array_map('utf8_encode', $row);
}
// Output $rows
echo json_encode($rows);</code>
Das obige ist der detaillierte Inhalt vonWie kodiere ich UTF-8-Zeichen korrekt mit json_encode() 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