由于编码,我肯定无法将数据导入到我的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_COLLATE
和LC_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']));
有人对此有任何线索吗?