Bei der Webentwicklung wird JSON
häufig verwendet, um Objekte in JSON
-Daten umzuwandeln und diese asynchron über AJAX
zu übertragen. Wenn Sie jedoch das PHP-Backend für eine JSON
-formatierte Ausgabe verwenden, kann es nach der Konvertierung des Objekts in das JSON
-Format zu verstümmelten chinesischen Zeichen kommen. In diesem Artikel wird erläutert, wie Sie dieses Problem beheben können. JSON
,将对象转换为 JSON
数据,并通过 AJAX
进行异步传输。然而在使用 PHP 后台进行 JSON
格式化输出时,可能会遇到对象转换为 JSON
格式后中文乱码的情况。本文将介绍如何解决这个问题。
在 PHP 代码中,我们使用 json_encode()
函数将对象转换成 JSON 格式的字符串,然后通过 echo
输出。但是,当 JSON 中包含中文时,就会出现乱码的情况,如下图所示:
清晰的中文被转换为了乱码,这对用户和开发者都是不友好的。接下来,我们将介绍三种解决方法。
在 json_encode()
函数前加上 json_encode()->mb_convert_encoding()
,将中文手动编码成 utf-8。
示例代码如下:
<?php $arr = [ 'name' => '张三', 'age' => 18, 'gender' => '男' ]; echo mb_convert_encoding(json_encode($arr, JSON_UNESCAPED_UNICODE), 'UTF-8'); ?>
加入这一段代码后,输出的字符串中的中文就会被正确地转换为 utf-8 编码,而不是乱码。
json_encode()
的参数在 json_encode()
函数中添加 JSON_UNESCAPED_UNICODE
参数,告诉 json_encode()
函数不要将中文编码成 Unicode,直接保留中文即可。
示例代码如下:
<?php $arr = [ 'name' => '张三', 'age' => 18, 'gender' => '男' ]; echo json_encode($arr, JSON_UNESCAPED_UNICODE); ?>
加入这个参数后,输出的 JSON 中的中文就会被正确输出,而不是乱码。
在 PHP 核心设置中,有一个参数 default_charset
,它表示输出一些文本时使用的默认字符编码。如果该参数被设置为 UTF-8,那么 JSON 输出时中文也会被正确地编码。
示例代码如下:
<?php ini_set('default_charset', 'utf-8'); $arr = [ 'name' => '张三', 'age' => 18, 'gender' => '男' ]; echo json_encode($arr); ?>
将这段代码放在需要输出 JSON 的脚本中,就可以保证 JSON 中的中文不会出现乱码了。
在进行 Web 开发时,使用 JSON 格式进行数据传输是非常常见的。在 PHP 中,使用 json_encode()
函数将对象序列化成 JSON 格式的字符串时,可能会出现中文乱码的情况。本文介绍了三种解决方法:手动将中文编码、设置 json_encode()
的参数和修改 PHP 核心设置中的 default_charset
json_encode()
, um das Objekt in eine JSON-Formatzeichenfolge zu konvertieren und es dann über echo . Wenn JSON jedoch Chinesisch enthält, werden verstümmelte Zeichen angezeigt, wie in der folgenden Abbildung dargestellt: 🎜🎜<img src="https://img-blog.csdnimg.cn/20181218104120173.png" alt="Chinesisches verstümmeltes Codebeispiel " title="Beispiel für verstümmelten chinesischen Code">🎜🎜Klare chinesische Zeichen werden in verstümmelte Zeichen umgewandelt, was für Benutzer und Entwickler unfreundlich ist. Als nächstes stellen wir drei Lösungen vor. 🎜<h2>Lösung</h2>
<h3>Methode 1: Chinesisch manuell kodieren</h3>🎜Fügen Sie <code>json_encode()->mb_convert_encoding vor der Funktion <code>json_encode()
() hinzu, kodieren Sie Chinesisch manuell in utf-8. 🎜🎜Der Beispielcode lautet wie folgt: 🎜rrreee🎜Nach dem Hinzufügen dieses Codeabschnitts wird das Chinesisch in der Ausgabezeichenfolge korrekt in die UTF-8-Codierung anstelle von verstümmelten Zeichen konvertiert. 🎜json_encode()
JSON_UNESCAPED_UNICODE
in der Funktion json_encode()
hinzu sagen: Die Funktion json_encode()
kodiert Chinesisch nicht in Unicode, sondern behält einfach das Chinesische bei. 🎜🎜Der Beispielcode lautet wie folgt: 🎜rrreee🎜Nach dem Hinzufügen dieses Parameters wird das Chinesisch im Ausgabe-JSON korrekt anstelle von verstümmelten Zeichen ausgegeben. 🎜default_charset
, der die Standardzeichenkodierung angibt, die bei der Ausgabe von Text verwendet wird. Wenn dieser Parameter auf UTF-8 gesetzt ist, wird Chinesisch bei der Ausgabe von JSON korrekt codiert. 🎜🎜Der Beispielcode lautet wie folgt: 🎜rrreee🎜Fügen Sie diesen Code in das Skript ein, das JSON ausgeben muss, um sicherzustellen, dass das Chinesisch in JSON nicht verstümmelt wird. 🎜json_encode()
verwenden, um ein Objekt in eine Zeichenfolge im JSON-Format zu serialisieren, werden möglicherweise verstümmelte chinesische Zeichen angezeigt. In diesem Artikel werden drei Lösungen vorgestellt: manuelles Codieren von Chinesisch, Festlegen der Parameter von json_encode()
und Ändern des Parameters default_charset
in den PHP-Kerneinstellungen. Diese Methoden können das Problem der verstümmelten chinesischen JSON-Zeichen effektiv lösen, und die spezifische Verwendung kann entsprechend der tatsächlichen Situation ausgewählt werden. 🎜Das obige ist der detaillierte Inhalt vonKonvertieren Sie ein PHP-Objekt in einen verstümmelten chinesischen JSON-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!