PHP json_encode 和 utf8_encode 不适用于我的 php 文件
Posted
技术标签:
【中文标题】PHP json_encode 和 utf8_encode 不适用于我的 php 文件【英文标题】:PHP json_encode and utf8_encode not working with my php file 【发布时间】:2019-01-26 04:16:10 【问题描述】:我有一些需要编码的 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 名称 = 假
这是我第一次尝试 php。我的 php 版本是 7.2.8。
【问题讨论】:
How to display Unicode data with PHP的可能重复 @RobbieAverill 感谢提到我。我看到了。但不能和我一起工作。 【参考方案1】:-
首次运行
mysqli_query('SET NAMES utf8')
。
通过json_last_error()
打印错误信息
【讨论】:
什么也没发生。不显示任何错误。 Json 字符串打印正常,但使用 "Truyện Cổ Tích" 仍然是错误的,并使用 "Truyện Thần Thoại" 得到 "Truy?n Th?n Tho?i"【参考方案2】:你必须配置连接SQL,它可以编码集mysqli_set_charset($con,"utf8");
【讨论】:
以上是关于PHP json_encode 和 utf8_encode 不适用于我的 php 文件的主要内容,如果未能解决你的问题,请参考以下文章