我有以下代码:
$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"“输出我的表中包含的每个条目的标题,所以我猜错误一定发生在编码中。
我将感谢您的每一个回答:)
发布于 2014-11-17 16:29:30
你可以使用这个想法:
$rowUtf8encode[]=array_map('utf8_encode',$row);
$rows[]=array_map('json_encode',$rowUtf8encode);
echo($rows);它的工作方式很有趣
发布于 2014-11-17 16:24:33
似乎你遗漏了php包:"php-xml“。确保您的服务器上有"php-xml“(或"php5-xml”)包。
您可以通过在您的服务器上运行以下命令进行检查:
rpm -qa | grep 'php-xml'或
rpm -qa | grep 'php5-xml'发布于 2014-11-17 16:47:46
让数据库来编码吧!
首先,你应该知道一些事情:
utf8_encode编码仅从ISO8859-1到UTF-8的差异mysql_函数将被弃用!)请使用PDO或mysqli!(查看准备好的statements)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'");https://stackoverflow.com/questions/26968166
复制相似问题