Postgresql 使用cp1252编码的Postgres?

Postgresql 使用cp1252编码的Postgres?,postgresql,encoding,utf-8,Postgresql,Encoding,Utf 8,我有一个postgres数据库,它使用UTF-8作为编码,并将客户端编码设置为UTF8。但是,当使用也应该是UTF8编码的脚本文件时,似乎假定编码实际上是cp1252,并给出以下错误: FEHLER: Zeichen mit Byte-Folge 0x81 in Kodierung "WIN1252" hat keine Entsprechung in Kodierung "UTF8" 这里怎么了?DB不应该假定文件是UTF8格式的,而不是尝试从cp1252转换它吗?我甚至还加了一行 SET

我有一个postgres数据库,它使用UTF-8作为编码,并将客户端编码设置为UTF8。但是,当使用也应该是UTF8编码的脚本文件时,似乎假定编码实际上是cp1252,并给出以下错误:

FEHLER:  Zeichen mit Byte-Folge 0x81 in Kodierung "WIN1252" hat keine Entsprechung in Kodierung "UTF8"
这里怎么了?DB不应该假定文件是UTF8格式的,而不是尝试从cp1252转换它吗?我甚至还加了一行

SET client_encoding='UNICODE';

但这并没有改变任何事情(如前所述,数据库已经以这种方式配置了…

我不得不手动插入BOM表,然后它就工作了。(真见鬼!)

客户机编码为UTF8(或UNICODE,这对postgres是一样的)时,这个错误没有意义,这是正确的。如果添加
showclient\u编码,会发生什么紧接在出错的查询之前?