PostgreSQL 9.0替换函数不适用于一个字符

PostgreSQL 9.0替换函数不适用于一个字符,postgresql,Postgresql,我正在使用PostgreSQl 9.0 我有一个表,需要将其中的一个字符替换为“”(空白) 为此,我使用 更新物种集engname=replace(engname,,“”) (这是查询图像) (图片已张贴) 在本例中,物种为表格,engname为字段(字符变化) 其中一行的内容是 “-tellifer fÃrthii” 即使在触发查询后,字符也不会被替换。 我试过了 更新物种集sciname=regexp_replace(sciname,,“”) 但是这个角色不会被替换 我的数据库是

我正在使用PostgreSQl 9.0 我有一个表,需要将其中的一个字符替换为“”(空白) 为此,我使用

更新物种集engname=replace(engname,,“”)

(这是查询图像)

(图片已张贴)

在本例中,物种为表格,engname为字段(字符变化)

其中一行的内容是

“-tellifer fÃrthii”

即使在触发查询后,字符也不会被替换。 我试过了

更新物种集sciname=regexp_replace(sciname,,“”) 但是这个角色不会被替换

我的数据库是

   CREATE DATABASE myDB
   WITH OWNER = Myadmin
   ENCODING   = 'SQL_ASCII'
   TABLESPACE = pg_default
   LC_COLLATE = 'C'
   LC_CTYPE = 'C'
   CONNECTION LIMIT = -1;
我们计划使用UTF-8编码,但在使用iconv进行转换期间,转换失败 所以我想用..替换
这个角色。。
有人能告诉我如何删除该字符吗?

此符号可用于更多字符-因此您不能使用“替换”。可能您的客户端应用程序使用的编码与数据库不同。符号用于发出中断编码的信号

解决方案是使用正确的编码

postgres=# select * from ff;
       a       
───────────────
 žluťoučký kůň
(1 row)

postgres=# set client_encoding to 'latin2'; --setting wrong encoding
SET
postgres=# select * from ff; -- and you can see strange symbols
       a       
───────────────
 �lu�ou�k� k�
(1 row)

postgres=# set client_encoding to 'utf8'; -- setting good encoding
SET
postgres=# select * from ff;
       a       
───────────────
 žluťoučký kůň
(1 row)
另一个解决方案是用相关的ascii字符替换国家或特殊字符


9.x具有用于utf或某些8位编码的非插入式contrib模块,有用于_ascii()的函数。

嘿,谢谢你的解释,…但如何替换/删除该字符?。我需要替换/删除该字符,以便iconv可以将转储文件编码为UTF-8..因为iconv在遇到该字符时会失败。您必须找到正确的编码,或使用-c参数进行iconv