【问题标题】:Postgresql: copy from gzip + invalid byte sequence encodingPostgresql:从gzip复制+无效的字节序列编码
【发布时间】:2020-07-03 18:34:05
【问题描述】:

在这篇文章中,它概述了如何将 .gzip 文件中的 csv 内容复制到 postgresql 表中:Importing zipped CSV file into PostgreSQL

copy tp from program 'zcat /tmp/tp.csv.gz';

我的问题是是否也可以在 gzip 中转换 csv 文件的编码,如此处所示invalid byte sequence for encoding "UTF8"

所以是这样的:

copy tp from program 'iconv -f original_charset -t utf-8 zcat /tmp/tp.csv.gz > stdin';

使用 zcat 应用副本时出现以下错误:

psycopg2.errors.CharacterNotInRepertoire: invalid byte sequence for encoding "UTF8": 0xba CONTEXT: COPY tp, line 677117

解压后 csv 文件被编码为 ASCII

file tp.csv

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    只要弄清楚文件的编码,然后去

    COPY tp FROM PROGRAM 'zcat /tmp/tp.csv.gz' (ENCODING 'whatever');
    

    【讨论】:

    • 谢谢 Laurenz,以下代码使用 ASCII 编码对我有用(我读到的应该是 UTF8 的子集,但它给出了错误): COPY tp FROM PROGRAM 'zcat /tmp/tp.csv .gz'(编码'latin9');
    猜你喜欢
    • 2021-08-19
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 2022-07-28
    • 2011-06-19
    • 2016-12-02
    • 1970-01-01
    相关资源
    最近更新 更多