gpt4 book ai didi

mysql - PDO输出utf8插入

转载 作者:行者123 更新时间:2023-11-29 23:45:57 25 4
gpt4 key购买 nike

我尝试使用 PDO 在浏览器中显示一些数据,但它在输出中显示类似 ???????????? 的错误。我尝试将 $db -> exec('set names utf8');但它改为:

o 039c\u0395\u039d\u039f\u0399 \u03a0\u03a5\u03a1\u every

如果我将英语内容放入数据库,一切正常,输出也正常,但如果我放入希腊语,就会出现问题,我需要希腊语插入

这是没有 $db -> exec('set names utf8') 的输出:

  "eventID":"3",
"catID":"1",
"poiID":"1",
"eventSourceURL":"??????? ??? ??????? ",
"eventTitle":"??????? ??? ??????? ",
"eventDescr":null,
"eventDate":"",
"eventImage":null,
"eventTime":null,
"eventComments":null,
"eventPreDescription":null

}

这是我的 PDO

<?php 


require('db_params.php');


$response = array();
try {

$db = new PDO("mysql:host=$dbhost;dbname=$dbname;", $dbuser, $dbpass);
$db -> exec('set names utf8');
$query = "select * from events where catID=1";
$stmt = $db->prepare($query);

$result = $stmt->execute();

if ($stmt->rowCount() > 0) {
$response["success"] = true;
$response["message"] = "Post Available!";
while($row = $stmt->fetchAll(PDO::FETCH_ASSOC)){

$response["posts"]["pid"] = $row;
}
}else{
$response["success"] = false;
$response["message"] = "No Post Available!";
}
}

catch (PDOException $ex) {
$response["success"] = false;
$response["message"] = "Database Error!";
}

echo json_encode($response);
//$statement->closeCursor();
//$pdoObject = null;

?>

更新

解决方案是只需添加 JSON_UNESCAPED_UNICODE:

echo json_encode($response,JSON_UNESCAPED_UNICODE);

最佳答案

由于您正在连接到 mysql 数据库,因此您可以利用以下属性

$db = new PDO("mysql:host=$dbhost;dbname=$dbname;", $dbuser, $dbpass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

并删除exec(set ..)

关于mysql - PDO输出utf8插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25949537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com