我有一个php文件来返回json,但结果不正确。
Ex:LậpTrìnhỨngDụngindatabase => L?pTrình?ng D?ng in view
这是php文件
<?php
$mysql = new mysqli('localhost','root','','freelancer');
$result = $mysql->query("select * from tag");
$rows = array();
while($row = $result->fetch_array(MYSQL_ASSOC)) {
$rows[] = array_map("utf8_encode", $row);
}
echo json_encode($rows);
?>
希望每个人都可以帮助我。谢谢阅读
答案 0 :(得分:0)
utf8_encode()
仅适用于iso-8895-1编码的字符串。由于您的字符串包含非拉丁字符,因此您的数据无法在iso-8895-1中进行编码,因此utf8_encode()
肯定无法正常工作。
相反,您需要通过向连接配置添加set_charset("utf8")
来要求MySQL返回以UTF-8编码的数据。现在您有UTF-8编码的字符串,您不再需要重新编码它。
您的新代码应如下所示:
<?php
$mysql = new mysqli('localhost','root','','freelancer');
$mysql->set_charset("utf8")
$result = $mysql->query("select * from tag");
$rows = array();
while($row = $result->fetch_array(MYSQL_ASSOC)) {
$rows[] = $row;
}
echo json_encode($rows);
?>