我想为我的PDO对象设置UTF8。这个类适用于MySQL。
我找不到PgSQL的array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8")
类似物,我无法使用西里尔符号。
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") );
}
答案 0 :(得分:5)
让我指出xmedeko的评论,这是绝对正确的:
pg_connect("host=localhost options='--client_encoding=UTF8'");
来源:http://php.net/manual/en/function.pg-connect.php
使用charset = utf8(仅)使用mysql ...
答案 1 :(得分:3)
从我在this page的第21.2.3节中看到的内容,您可以使用以下两个命令之一:
SET CLIENT_ENCODING TO 'value';
SET NAMES 'value';
其中value = UTF8
。尝试使用:
SET CLIENT_ENCODING TO 'UTF8';
或
SET NAMES 'UTF8';
答案 2 :(得分:1)
很容易找到常规SQL查询的模拟
$pdo->query("SET NAMES UTF8")
但是,无论如何都必须在DSN中设置编码
$this->conn = new PDO("pgsql:host=".$this->host.";dbname=".$this->db.";charset=".$this->charset