JSON 编码由于奇怪的字符而失败。转义$pdo->引号($data) 不起作用



我查询数据库,然后我想用json编码响应。

由于"name"one_answers"description"这两个字段包含一些诡异的字符,json的编码无法成功。

在我对从数据库接收的数组进行编码后,json只有4个字符的长度。

如果我不从数据库中查询包含那些非常奇怪的字符的表"name"one_answers"description",那么一切都在运行。我可以对数组进行编码,然后使用它。

我试过了$pdo->报价($data[名称])和$pdo->报价($data[description]),逃跑已经完成,但问题没有解决。。json仍然被那些奇怪的字符搞砸了。

你知道可能会发生什么吗?

我修复了它。我必须设置数据库连接的字符集:
try {
$pdo = new PDO("mysql:host={$dbhost};dbname={$dbname}", $dbuser, $dbpass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo -> exec('SET NAMES utf8'); // FIX
}
catch( PDOException $excepiton ) {
echo "Connection error :" . $excepiton->getMessage();
}
?>

最新更新