Postgresql PotgreSQL-错误:编码的字节序列无效;UTF8";:0xeb 0x6e 0x74
我正在处理PostgreSQL,并在从批处理脚本(命令行)执行insert语句时发现以下错误 错误:编码“UTF8”的字节序列无效:0xeb 0x6e 0x74 我已经通过Postgresql PotgreSQL-错误:编码的字节序列无效;UTF8";:0xeb 0x6e 0x74,postgresql,encoding,character-encoding,pgadmin-4,Postgresql,Encoding,Character Encoding,Pgadmin 4,我正在处理PostgreSQL,并在从批处理脚本(命令行)执行insert语句时发现以下错误 错误:编码“UTF8”的字节序列无效:0xeb 0x6e 0x74 我已经通过showclient\u encoding命令检查了客户机编码,它显示的是UTF-8 还使用命令检查了数据库属性 从pg_数据库中选择*,其中datname=' 在输出中: datcollate=English\u United States.1252 datctype=English_United States.1252 如
showclient\u encoding
命令检查了客户机编码,它显示的是UTF-8
还使用命令检查了数据库属性
从pg_数据库中选择*,其中datname='
在输出中:
datcollate=English\u United States.1252
datctype=English_United States.1252
如何解决此问题?如果错误消息引用的三个字节应该编码字符串“ënt”,您可以通过设置正确的客户端编码来解决问题,例如:
SET client_encoding = WIN1252;
如果错误消息引用的三个字节应该编码字符串“ënt”,您可以通过设置正确的客户端编码来解决问题,例如:
SET client_encoding = WIN1252;
这是因为列的名称中有特殊字符。
重命名和删除特殊字符更改win-1252的编码并将起作用。发生这种情况是因为列的名称中有特殊字符。
重命名和删除特殊字符更改win-1252的编码即可。谢谢您的回复。这也没用。实际上,当我从查询浏览器(pgAdmin4)执行insert查询时,它成功地执行了,但当我从批处理脚本(命令行)执行相同的命令时,它给出了错误。那么我需要在批处理脚本中设置任何内容吗?Word:*例如patiënt**是的,您必须在批处理脚本中包含
SET
语句。根据您使用的客户端的不同,可能有更优雅的方式来设置客户端编码,但是SET
语句是最简单的方式。谢谢您的回复。这也没用。实际上,当我从查询浏览器(pgAdmin4)执行insert查询时,它成功地执行了,但当我从批处理脚本(命令行)执行相同的命令时,它给出了错误。那么我需要在批处理脚本中设置任何内容吗?Word:*例如patiënt**是的,您必须在批处理脚本中包含SET
语句。根据您使用的客户机的不同,可能有更优雅的方式来设置客户机编码,但是SET
语句是最简单的方式。