我有以下代码:
$rows=array();
while($row=mysql_fetch_assoc($result))
{
echo $row["titel"];
$rows[] = array_map('utf8_encode', $row);
}
echo json_encode($rows);
不知何故,输出是空的,虽然我使用" json_encode"功能。我的列的排序规则区分了utf8_bin和utf8_general_ci。 " echo $ row [" titel"]"输出我的表中包含的每个条目的标题,所以我猜错误必须在编码中发生。
我很感激每一个答案:)
答案 0 :(得分:4)
你可以使用这个想法:
$rowUtf8encode[]=array_map('utf8_encode',$row);
$rows[]=array_map('json_encode',$rowUtf8encode);
echo($rows);
它很有趣
答案 1 :(得分:0)
似乎你错过了php包:“php-xml”。 确保您的服务器上有“php-xml”(或“php5-xml”)软件包。
您可以在服务器上运行folloing命令进行检查:
rpm -qa | grep 'php-xml'
或
rpm -qa | grep 'php5-xml'
答案 2 :(得分:0)
让数据库进行编码!
首先你应该知道一些事情:
utf8_encode
仅从ISO 8859-1编码为UTF-8 mysql_
函数已弃用!请改用PDO或mysqli! (寻找准备好的陈述)json_encode
会通过调用json_last_error_msg 因此,假设您的应用程序使用latin1
编码的字符串。然后你应该在需要时更改mysql连接的字符集:
//Change to utf8
mysql_query("SET NAMES 'utf8'");
$result = mysql_query($sqlQuery);
$rows = array();
while($row = mysql_fetch_assoc($result)) {
$rows[] = $row;
}
echo json_encode($rows);
//Back to latin1 (if needed)
mysql_query("SET NAMES 'latin1'");
答案 3 :(得分:0)
完成连接后,请更改字符集。 这是由于您的数据库字符集配置。
$ mysqli = new mysqli(“localhost”,“UsrChingon”,“PwdChingon”,“DbChingona”); $ mysqli-> set_charset( “UTF8”);