[英]Special characters in column names
我从客户那里得到了一个数据库,需要围绕它创建一些逻辑,比如读取和插入条目。
当我尝试一些基本请求时,例如:
$json = array ();
$query = "select * from tab1";
if ($result = $link->query ( $query )) {
while ( $row = $result->fetch_assoc () ) {
array_push ( $json, $row );
}
}
die ( json_encode ( $json ) );
我出乎意料地得到了一个空洞的回应。
直接从 PHPMyAdmin 执行相同的查询,我得到了所有预期的结果。
当我刚刚在浏览器中转储 JSON 结果时,我注意到(提取):
... string(30) "ColumnName(�)" ...
我花了一段时间才发现,有些列名称带有一些特殊字符,例如µ
和°
。 显然,它们无法正确显示,因此整个响应无效,我没有得到任何结果。
只需从列名中删除这些字符即可解决问题。
是否有另一种解决方案,而不仅仅是手动查找这些字符并删除它们?
因为json_encode()
/ json_decode()
只处理UTF-8编码,所以必须将所有非 utf8 编码的字符串转换为 utf-8
您可以使用utf8-encode() 函数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.