【发布时间】:2015-02-16 23:16:50
【问题描述】:
我有一个使用 UTF-8 作为编码的 postgres 数据库,并将 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';
但这并没有改变任何东西(如上所述,数据库已经这样配置了......)
【问题讨论】:
-
你说得对,当
client_encoding是 UTF8(或 UNICODE,postgres 也是如此)时,这个错误没有意义。如果在出错的查询之前添加show client_encoding;会发生什么?
标签: postgresql encoding utf-8