我有一个postgres数据库,它使用UTF-8作为编码,并将client_encoding设置为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,然后它就工作了。(见鬼!)