postgres的COPY函数是否支持utf 16编码的文件?
Does the postgres COPY function support utf 16 encoded files?
我正在尝试使用 postgreSQL COPY
函数将 UTF 16 编码的 csv 插入 table。但是,当 运行 执行以下查询时:
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编码的文件吗?我本以为这几乎肯定是可能的!
我是 运行ning postgres 12,在 windows 10 pro
任何帮助将不胜感激!
不,你不能那样做。
UTF-16 不在 list of supported encodings.
PostgreSQL 永远不会支持不是 ASCII 扩展的编码。
您必须将文件转换为 UTF-8。
我正在尝试使用 postgreSQL COPY
函数将 UTF 16 编码的 csv 插入 table。但是,当 运行 执行以下查询时:
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编码的文件吗?我本以为这几乎肯定是可能的!
我是 运行ning postgres 12,在 windows 10 pro
任何帮助将不胜感激!
不,你不能那样做。
UTF-16 不在 list of supported encodings.
PostgreSQL 永远不会支持不是 ASCII 扩展的编码。
您必须将文件转换为 UTF-8。