问题如题所示,具体如下:

解决该问题,需要在PDO请求数据库连接的时候,就把字符集的设定声明进去。

如下修改代码就能解决中文乱码问题:

$value) {
      $str[urlencode($key)] = url_encode($value);
    }
  } else {
    $str = urlencode($str);
  }

  return $str;
}

//MySQLi extention
//-------------------------------
// 创建连接
//面向对象
//$conn = new mysqli($servername, $username, $password);

//面向过程
//$conn = mysqli_connect($servername, $username, $password);

// 检测连接
//if ($conn->connect_error) {
//    die("连接失败: " . $conn->connect_error);
//}
//echo "连接成功";

//PDO
//----------------------------------------
try {
    $conn = new PDO("mysql:host=$servername;", $username, $password,array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8"));
    //echo "连接成功
"; //echo "===================
"; //echo ""; } catch(PDOException $e) { echo "连接失败
"; echo "===================
"; echo $e->getMessage(); echo "
"; echo ""; } //for DataTables Coding //SQL语句 $sql = "select * from gds_its_customer_data.people"; //SQL语句执行 $do = $conn->prepare($sql); $do->execute(); //SQL语句,获得结果集 $row = $do->fetchAll(PDO::FETCH_ASSOC); //--> json encoding //$row_json_encoding = json_encode($row,JSON_UNESCAPED_UNICODE); //输出 //echo $row; //echo _json($row); //echo $row_json_encoding; echo encode_json($row); //关闭连接 //MYSQLI //面向对象 //$conn->close(); //面向过程 //mysqli_close($conn); //PDO $conn = null; ?>

注意,上面申请数据库连接的时候:
【array(PDO::MYSQL_ATTR_INIT_COMMAND => “set names utf8”)】

$conn = new PDO("mysql:host=$servername;", $username, $password,array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8"));

最后,中文显示正常了:

——————————————
Done。

说点什么

avatar

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  Subscribe  
提醒