Функция замены PostgreSQL 9.0 не работает для одного символа - PullRequest
0 голосов
/ 15 декабря 2011

я работаю с PostgreSQl 9.0, и у меня есть таблица, из которой мне нужно заменить символ на '' (пробел), для этого я использую

обновить вид set engname = replace (engname,'', '');

(это изображение запроса) enter image description here

(изображение опубликовано) this is the character

в случае вид таблица и engname - это поле (символ меняется) ..

содержание одной строки равно

"-tellifer fârthii" enter image description here

даже после запуска запроса символ не заменяется.я пытался с

обновить вид набора sciname = regexp_replace (sciname, '', ''), но персонаж не получил замену

my database is

   CREATE DATABASE myDB
   WITH OWNER = Myadmin
   ENCODING   = 'SQL_ASCII'
   TABLESPACE = pg_default
   LC_COLLATE = 'C'
   LC_CTYPE = 'C'
   CONNECTION LIMIT = -1;

Мы планируем перейти на кодировку UTF-8, но во время преобразования с iconv преобразование завершается неудачно из-за этого enter image description here, поэтому я хотел заменить персонаж с .. может кто-нибудь сказать мне, как удалить этот символ?

1 Ответ

2 голосов
/ 15 декабря 2011

этот символ может использоваться для большего количества символов - поэтому вы не можете использовать замену.Возможно, ваше клиентское приложение использует кодировку, отличную от базы данных.Символ используется для сигнализации о неправильном кодировании.

Решение использует правильную кодировку

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модуль unaccent contrib для utf или для 8-битной кодировки есть функция to_ascii ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...