编码为UTF8的字符在WIN1252中没有等效字符

Mon*_*bal 31 postgresql encoding character utf-8

我收到以下异常:

Caused by: org.postgresql.util.PSQLException: ERROR: character 0xefbfbd of encoding "UTF8" has no equivalent in "WIN1252"
Run Code Online (Sandbox Code Playgroud)

有没有办法通过SQL或编程方式消除这些字符?
(首选SQL解决方案).

我正在考虑使用WIN1252连接到数据库,但它会产生同样的问题.

And*_*rra 29

我有一个类似的问题,我通过\encoding UTF8在尝试之前在客户端中将编码设置为UTF8来解决INSERT INTO foo (SELECT * from bar WHERE x=y);.我的客户端使用WIN1252编码,但数据库是UTF8,因此错误.

字符集支持(开发文档)下的PostgreSQL wiki上提供了更多信息.


Tom*_*zky 8

收到这条消息后你会怎么做?你把文件导入Postgres吗?正如devstuff所说它是一个BOM角色.这是一个Windows首先写入文本文件的字符,当它以UTF8编码保存时 - 它是不可见的,0宽字符,因此在文本编辑器中打开时不会看到它.

尝试在例如记事本中打开此文件,以ANSI编码保存,并在文件中添加(或替换类似的)set client_encoding to 'WIN1252'行.


MSa*_*ers 6

不要让角色老化,它们是真实的并且有充分理由使用.相反,eridicate Win1252.

  • 我希望我能,这是一个要求:) (2认同)