好的。我搜索了所有可能的方法。但这一个仍然让我退缩。
我正在使用 PDO 从 MySQL 获取数据。MySQL 数据具有类似ä
. 我只是使用 PDO 运行查询并json_encode
生成结果数组。编码后,我strip_tag
。
当我打印数组时,我仍然看到黑色菱形问号字符。�.
var_dump
显示相同的菱形标记。
我的 PDO 具有以下设置:
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
在 JSON 响应中,我得到null
了具有此字符的字符串。
我试过了utf8_encode
。它不能解决问题。utf8_encode(json_encode($results))
我试过了iconv("UTF-8", "ISO-8859-1", strip_tags(json_encode($results)))
。没运气。
数据库显示正确的字符ä
我现在完全没有想法了。
更新:
这解决了我的问题。
将其更改为:
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
至
PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET 'utf8'"
它现在工作正常。