PHP json_encode和utf8_encode与我的php文件不起作用
PHP json_encode和utf8_encode与我的php文件不起作用
我有一些需要编码的json - 越南字。我尝试使用JSON_UNESCAPED_UNICODE,但看起来它不再起作用了。
header("Content-type: application/json; charset=utf-8"); $db = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD,DB_DATABASE) or die(mysqli_connect_errno()); $result = mysqli_query($db,"SELECT * FROM categories") ; if (mysqli_num_rows($result) > 0) { $response["categories"] = array(); while ($row = mysqli_fetch_array($result)) { $categories["id"] = json_encode($row["id"]); $categories["name"]= json_encode($row["name"],JSON_UNESCAPED_UNICODE); array_push($response["categories"], $categories); } $response["result"] = "OK"; $myJSON = json_encode($response); echo $myJSON; }
输入:
id=1 name=Truyện Cổ Tích
输出:
id=1 name=false
这是我第一次尝试PHP。我的php版本是7.2.8。
在处理PHP文件时,有用户发现他们的PHP文件中的json_encode和utf8_encode函数无法正常工作。下面我们来分析一下问题的原因以及解决方法。
问题的原因是用户没有正确配置连接SQL,以使其能够编码设置为utf8。正确的配置方法是使用mysqli_set_charset函数来设置字符集,如下所示:
mysqli_set_charset($con,"utf8");
解决方法是在PHP文件中添加上述代码,以确保连接SQL时使用utf8字符集编码。这样一来,json_encode和utf8_encode函数就能够正常工作了。
通过以上的分析,我们可以得出结论:在PHP文件中使用json_encode和utf8_encode函数时,确保正确配置连接SQL的字符集编码是解决问题的关键。