【问题标题】:I am getting the error message "ERROR: invalid byte sequence for encoding "WIN1251": 0x00"我收到错误消息“错误:编码“WIN1251”的无效字节序列:0x00”
【发布时间】:2020-03-16 06:55:26
【问题描述】:

我正在尝试将 CSV 加载到我的 postgres 数据库,但我收到了上述错误消息:

我的查询是:

COPY dbo.tbl(col1,col2) 
FROM 'C:\Data\dbo.tbl.csv' DELIMITER ',' null as 'null'  encoding 'windows-1251' CSV;

我试过这个链接供参考:https://www.postgresqltutorial.com/import-csv-file-into-posgresql-table/'

有人可以帮我解决问题吗。我是 postgres 数据库的新手。

【问题讨论】:

  • 也许这会对你有所帮助:stackoverflow.com/questions/30916853/…
  • 检查数据库和文件编码。对于数据库psql my_database -c 'SHOW SERVER_ENCODING'。您使用的是哪个版本的 Windows?
  • 您是否尝试过设置客户端的编码?您可以使用分号连接 set client encodingcopy 命令,例如"SET CLIENT_ENCODING TO 'WIN1251'; COPY dbo.tbl FROM FROM 'C:\Data\dbo.tbl.csv'"
  • @JimJones 我尝试了你的要求,但它给了我同样的错误
  • 很奇怪。您确定文件是使用WIN1251 编码的吗?我记得有同样的问题并且能够使用SET CLIENT_ENCODING TO 'UTF8'; COPY ... 解决它

标签: sql postgresql


【解决方案1】:

根据我的经验,我的 csv 文件编码为“WIN874”,而 postgres 客户端编码为“UTF-8”。我可以毫无问题地使用copy 命令。

为确保您的文件编码为“WIN1251”,您可以在 Visual Studio Code 中打开您的 csv 文件。它将在右下窗格中显示文件编码。

【讨论】:

  • 谢谢伙计。在过去的两个小时里,我一直在为此奋斗,而你的帖子救了我。
猜你喜欢
  • 2022-01-26
  • 2022-07-28
  • 2010-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多