无法在我的Postgres数据库中导入ò字符-LC_COLLATE不是UTF-8

时间:2019-10-07 07:02:00

标签: php postgresql symfony doctrine

由于编码,我肯定无法将数据导入到我的postgreSQL数据库中。 这就是我所拥有的:

  

使用参数[574,“ \ xf3”]执行'INSERT INTO表(id,name)VALUES(?,?)'时发生异常:

     

SQLSTATE [22021]:字符不在清单中:7错误:八位字节序列无效«UTF8»:0xf3

显然,ò字符编码为\xf3导致了此错误。

当我使用以下命令创建Postgresql 11.5数据库时:

php bin/console doctrine:database:create

具有以下原则配置并添加最后3行

doctrine:
    dbal:
        driver: pdo_pgsql
        url: '%env(resolve:DATABASE_URL)%'
        default_table_options:
            charset: utf8
            collate: utf8_unicode_ci

我仍然有相同的错误。在我的pgAdmin界面中,我看到我的数据库是使用以下SQL初始化的:

CREATE DATABASE db
    WITH 
    OWNER = postgres
    ENCODING = 'UTF8'
    LC_COLLATE = 'French_France.1252'
    LC_CTYPE = 'French_France.1252'
    TABLESPACE = pg_default
    CONNECTION LIMIT = -1;

显然LC_COLLATELC_TYPE的设置不正确。

当我尝试从pgAdmin创建数据库时,下拉菜单中未提出 utf8

并通过命令行创建了数据库,但似乎找不到正确的编码,就好像未安装utf8字符类型一样(抱歉,所有消息错误都是法语的):

  

postgres =#用所有者=“ postgres”创建数据库“ db” ENCODING ='UTF8'LC_COLLATE ='fr_FR.utf8'LC_CTYPE ='fr_FR.utf8'TEMPLATE template0;

     

注意:设置语言环境«fr_FR.utf8»:代码集谨慎«CPutf8»

     

注意:设置语言环境«fr_FR.utf8»:代码集谨慎«CPutf8»

而且我还尝试使用utf8_encode() php 方法,但是它什么也没做。

$entity->setName(utf8_encode($row['name']));

有人对此有任何线索吗?

0 个答案:

没有答案