Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Json编码-无效的utf-8序列_Php_Symfony - Fatal编程技术网

Php Json编码-无效的utf-8序列

Php Json编码-无效的utf-8序列,php,symfony,Php,Symfony,无论如何,我所做的与数据库相关的所有事情都会给我抛出json_encode():无效utf-8序列警告 早些时候,因为条令的使用,我无法处理它,所以我开始在我的项目中做其他事情……但现在我需要在一个地方使用PDO连接,问题又出现了 即使使用一些随机数据库配置(但其中主机='localhost'),也会出现警告 守则: $dsn = 'mysql:dbname='.$form['dbname']->getData().';host='.$form['host']->getData()

无论如何,我所做的与数据库相关的所有事情都会给我抛出json_encode():无效utf-8序列警告

早些时候,因为条令的使用,我无法处理它,所以我开始在我的项目中做其他事情……但现在我需要在一个地方使用PDO连接,问题又出现了

即使使用一些随机数据库配置(但其中主机='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_集_字符集()
  • 转义输入字符串
  • @
    语法
  • 为控制器文件设置utf8编码
  • 设置mysql表/数据库的utf8通用编码

    $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');
    

  • 怎么了?

    通常mysql\u set\u charset得到的是'utf8'而不是'utf-8',所以这可能就是问题所在。

    哦,谢谢你指出这一点-但这并不能解决问题。你能发布使用json\u编码的确切代码以及发送给它的值吗?