如何在PHP PgSQL数据库的PDO类构造函数中设置UTF-8

vil*_*ili 8 php postgresql pdo utf-8

我想为我的PDO对象设置UTF8.这个类适用于MySQL.我找不到array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8")PgSQL 的模拟,我无法使用西里尔符号.

class oop{
private $host="localhost";
    private $user="xxxx";
    private $db="xxxx";
    private $pass="111111";
    private $conn;

public function __construct(){

    $this->conn = new PDO("pgsql:host=".$this->host.";dbname=".$this->db,$this->user,$this->pass,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8") );

}
Run Code Online (Sandbox Code Playgroud)

red*_*dia 5

让我指出xmedeko的评论,这是绝对正确的:

pg_connect("host=localhost options='--client_encoding=UTF8'");
Run Code Online (Sandbox Code Playgroud)

资料来源:http://php.net/manual/en/function.pg-connect.php

使用charset = utf8正在使用mysql ...


hjp*_*r92 3

根据我在本页第 21.2.3 节中看到的内容,您可以使用以下两个命令之一:

  1. SET CLIENT_ENCODING TO 'value';
  2. SET NAMES 'value';

其中值 = UTF8. 尝试使用:

SET CLIENT_ENCODING TO 'UTF8';
Run Code Online (Sandbox Code Playgroud)

或者

SET NAMES 'UTF8';
Run Code Online (Sandbox Code Playgroud)