【问题标题】:PotgreSQL- ERROR: invalid byte sequence for encoding "UTF8": 0xeb 0x6e 0x74PostgreSQL-错误:编码“UTF8”的字节序列无效:0xeb 0x6e 0x74
【发布时间】:2018-12-05 23:30:14
【问题描述】:

我正在使用 PostgreSQL 并在从批处理脚本(命令行)执行插入语句期间遇到错误。

错误:编码“UTF8”的字节序列无效:0xeb 0x6e 0x74

我通过show client_encoding 命令检查了client_encoding,它显示的是UTF-8。

还使用命令检查数据库属性

select * from pg_database where datname='<mydbName>'

在输出中

datcollate = English_United States.1252 datctype = English_United States.1252

如何解决这个问题?

【问题讨论】:

    标签: postgresql encoding character-encoding pgadmin-4


    【解决方案1】:

    如果错误消息引用的三个字节应该对字符串“ënt”进行编码,您可以通过设置正确的客户端编码来解决您的问题,例如

    SET client_encoding = WIN1252;
    

    【讨论】:

    • 感谢您的回复。这也没有奏效。实际上,当我从查询浏览器(pgAdmin4)执行插入查询时,它执行成功,但是当我从批处理脚本(命令行)执行相同的命令时,它给了我错误。那么我必须在批处理脚本中设置什么吗?单词:** 例如病人**
    • 是的,您必须在批处理脚本中包含SET 语句。根据您使用的客户端,可能有更优雅的方式设置客户端编码,但SET 语句是万无一失的方式。
    【解决方案2】:

    发生这种情况是因为列名中有特殊字符。 重命名和删除特殊字符会改变win-1252的编码并且可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-02
      • 2021-08-19
      • 2021-05-01
      相关资源
      最近更新 更多