无论如何,我一直在做的所有与数据库有关的事情都会向我抛出 json_encode(): invalid utf-8 sequence 警告。
之前是因为学说的使用,我处理不了,所以我开始在我的项目中做其他事情……但是现在我需要在一个地方使用 PDO 连接,问题又回来了。
即使有一些随机的数据库配置(但 host = 'localhost'),也会出现警告。
编码:
$dsn = 'mysql:dbname='.$form['dbname']->getData().';host='.$form['host']->getData();
$pdo = new \PDO($dsn, $form['username']->getData(), $form['password']->getData());
输入示例:
dbname = 'fdsfdsf'
username = 'fdsfdsf'
password = 'fsdfds'
host = 'localhost'
确切的错误:
ContextErrorException: Warning: json_encode(): Invalid UTF-8 sequence in argument in C:\xampp\htdocs\cc\app\cache\dev\classes.php line 4520
我已经尝试了什么?
- mysql_set_charset()
- 转义输入字符串
@
句法- 为控制器文件设置 utf8 编码
为 mysql 表/数据库设置 utf8-general 编码
$dsn = 'mysql:dbname='.htmlentities($form['dbname']->getData(), ENT_QUOTES, 'utf-8', FALSE).';host='.htmlentities($form['host']->getData(), ENT_QUOTES, 'utf-8', FALSE); $pdo = @new \PDO($dsn, htmlentities($form['username']->getData(), ENT_QUOTES, 'utf-8', FALSE), htmlentities($form['password']->getData(), ENT_QUOTES, 'utf-8', FALSE)); mysql_set_charset('utf-8');
怎么了?