Heim > Artikel > Backend-Entwicklung > Was tun, wenn PHP JSON verstümmelte chinesische Zeichen in der Datenbank speichert?
Während des Entwicklungsprozesses kann es vorkommen, dass JSON-Daten in der Datenbank gespeichert werden. Normalerweise stellt dies kein Problem dar, wenn wir mit englischen Zeichenfolgen arbeiten. Wenn wir jedoch chinesische Zeichen verwenden, kann es zu verstümmelten Zeichen kommen. In diesem Artikel erfahren Sie, wie Sie das Problem der JSON-Verstümmelung lösen können, das beim Speichern chinesischer Zeichen in einer MySQL-Datenbank auftritt.
Zuerst müssen wir bestätigen, ob der Datenbankzeichensatz korrekt ist. Der Standardzeichensatz von MySQL ist Latin1, der chinesische Zeichensätze nicht unterstützt. Wenn Ihre Kodierung nicht UTF-8 ist, müssen Sie den Zeichensatz von MySQL ändern. Geben Sie in der MySQL-Befehlszeile den folgenden Befehl ein, um den Zeichensatz zu ändern:
SET NAMES 'utf8';
Führen Sie dann den folgenden Befehl aus:
ALTER DATABASE `your_database` CHARACTER SET utf8 COLLATE utf8_general_ci;
Ein weiteres häufiges Problem sind Kodierungsprobleme. Ihr Texteditor verwendet möglicherweise eine andere Kodierung als der Server oder eine andere Kodierung als die MySQL-Datenbank. Um verstümmelte Zeichen zu vermeiden, stellen Sie sicher, dass alle Dateien dieselbe Kodierung verwenden. Für PHP-Dateien empfehlen wir die Verwendung der UTF-8-Kodierung.
Während der Entwicklung besteht die beste Möglichkeit, JSON-Daten zu speichern, darin, die Daten über die json_encode-Funktion von PHP in einen JSON-String umzuwandeln und ihn dann in eine Datenbanktabelle einzufügen. Für chinesische Schriftzeichen ist das Kodierungsformat UTF-8 erforderlich.
Das Folgende ist ein Beispielcode zum Speichern von JSON-Daten in einer MySQL-Datenbank:
//连接数据库 $conn = mysqli_connect($servername, $username, $password, $dbname); //设置字符集 mysqli_set_charset($conn, "utf8"); //将 JSON 数据转换为字符串 $json_data = json_encode($data, JSON_UNESCAPED_UNICODE); //插入数据到数据库表中 $sql = "INSERT INTO `table` (`id`, `data`) VALUES (NULL, '$json_data')"; $result = mysqli_query($conn, $sql); //关闭数据库连接 mysqli_close($conn);
Wenn Sie in der Datenbank gespeicherte JSON-Daten lesen möchten, können Sie die json_decode-Funktion von PHP verwenden, um die JSON-Zeichenfolge zu konvertieren in „In PHP-Array oder -Objekt konvertieren“. Beachten Sie, dass bei Verwendung von json_decode der zweite Parameter auf true gesetzt werden muss, um sicherzustellen, dass die Daten als Array und nicht als Objekt zurückgegeben werden.
Das Folgende ist ein Beispielcode zum Lesen von JSON-Daten aus einer MySQL-Datenbank:
//连接数据库 $conn = mysqli_connect($servername, $username, $password, $dbname); //设置字符集 mysqli_set_charset($conn, "utf8"); //查询数据库 $sql = "SELECT `data` FROM `table` WHERE id = '1'"; $result = mysqli_query($conn, $sql); $row = mysqli_fetch_assoc($result); //将 JSON 字符串转换为 PHP 数组 $json_data = json_decode($row['data'], true); //关闭数据库连接 mysqli_close($conn);
Zusammenfassung:
Stellen Sie beim Speichern von JSON-Daten sicher, dass der Datenbankzeichensatz UTF-8 ist, der Texteditor das richtige Codierungsformat verwendet und Verwenden Sie PHP. Die Funktion json_encode konvertiert Daten in einen JSON-String. Verwenden Sie beim Lesen von JSON-Daten die json_decode-Funktion von PHP, um die JSON-Zeichenfolge in ein PHP-Array zu konvertieren.
Die oben genannten Tipps sind einige Tipps zur Lösung des JSON-Verstümmelungsproblems, das beim Speichern chinesischer Zeichen in einer MySQL-Datenbank auftritt. Wir hoffen, dass diese Tipps für Sie hilfreich sind.
Das obige ist der detaillierte Inhalt vonWas tun, wenn PHP JSON verstümmelte chinesische Zeichen in der Datenbank speichert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!