【问题标题】:Does the postgres COPY function support utf 16 encoded files?postgres COPY 功能是否支持 utf 16 编码文件?
【发布时间】:2019-11-22 13:17:44
【问题描述】:

我正在尝试使用 postgreSQL COPY 函数将 UTF 16 编码的 csv 插入表中。但是,在运行以下查询时:

COPY temp 
FROM 'C:\folder\some_file.csv' 
WITH (
    DELIMITER E'\t', 
    FORMAT csv, 
    HEADER);

我收到以下错误:

ERROR:  invalid byte sequence for encoding "UTF8": 0xff
CONTEXT:  COPY temp, line 1
SQL state: 22021

当我运行相同的查询,但将编码设置 Encoding 'UTF-16'Encoding 'UTF 16' 添加到 with 块时,我收到以下错误:

ERROR:  argument to option "encoding" must be a valid encoding name
LINE 13:  ENCODING 'UTF 16' );
          ^
SQL state: 22023
Character: 377

我查看了 postgres 文档以尝试找到正确的编码,但没有找到任何东西。这是因为复制功能确实支持 UTF 16 编码文件吗?我原以为这几乎肯定是可能的!

我在 windows 10 pro 上运行 postgres 12

任何帮助将不胜感激!

【问题讨论】:

    标签: postgresql encoding character-encoding utf-16


    【解决方案1】:

    不,你不能那样做。

    UTF-16 不在list of supported encodings 中。
    PostgreSQL 永远不会支持不是 ASCII 扩展的编码。
    您必须将文件转换为 UTF-8。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-22
      • 2014-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      相关资源
      最近更新 更多