如何使用 COPY() 在另一种编码(win1251,SQL_ASCII)中导入 UTF8 table?

How to import UTF8 table in another encoding(win1251, SQL_ASCII) with COPY()?

Prehistory:你好,我在postgres中看到很多关于编码的问题,但是。 我有 UFT8 table,我正在使用 COPY 函数在 CSV 中导入 table,我需要使用不同的编码进行 COPY,例如 WIN1251 和 SQL_ASCII。

问题: 当在 table 中我有 WIN1251/SQL_ASCII 不支持的字符时,我会得到经典错误

character with byte sequence 0xe7 0xb0 0xab in encoding "UTF8" has no equivalent in encoding "WIN1251"

我尝试使用“set client_encoding/convert/convert_to”——没有成功。

主要问题:有没有办法使用sql做到这一点而不会出错?

根本无法将箫转换成Windows-1252,所以你可以忽略它。

如果您将客户端编码设置为 SQL_ASCII,您将能够将数据加载到 SQL_ASCII 数据库中,但这没什么用,因为数据库不会将其识别为一个字符,但是 127 以上的三个无意义的字节。