How set UTF-8 in PDO class constructor for PHP PgSQL database

后端 未结 3 608
栀梦
栀梦 2020-12-09 20:31

I want to set UTF8 for my PDO object. This class works correctly with MySQL. I can\'t find an analog of array(PDO::MYSQL_ATTR_INIT_COMMAND => \"SET NAMES UTF8\")

相关标签:
3条回答
  • 2020-12-09 21:10

    Let me point out the comment by xmedeko, that is absolute right:

    pg_connect("host=localhost options='--client_encoding=UTF8'");
    

    Source: http://php.net/manual/en/function.pg-connect.php

    Using charset=utf8 is working (only) with mysql...

    0 讨论(0)
  • 2020-12-09 21:10

    it is very easy to find an analog for the regular SQL query

    $pdo->query("SET NAMES UTF8")
    

    However, encoding have to be set in DSN anyway

    $this->conn = new PDO("pgsql:host=".$this->host.";dbname=".$this->db.";charset=".$this->charset
    
    0 讨论(0)
  • 2020-12-09 21:28

    From what I see in section 21.2.3 on this page, you can use one of the following two commands:

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

    where value = UTF8. Try using:

    SET CLIENT_ENCODING TO 'UTF8';
    

    or

    SET NAMES 'UTF8';
    
    0 讨论(0)
提交回复
热议问题