Кодирането на вашия сървър изглежда е UTF8.
Подозирам вашето client_encoding
не съвпада, което може да ви създаде погрешно впечатление за това, с което си имате работа. Проверете с:
SHOW client_encoding; -- in your actual session
И прочетете тези свързани отговори:
Не може да вмъкне немски знаци в Postgres
Замяна на уникод символи в PostgreSQL
Останалата част от инструменталната верига също трябва да бъде синхронизирана. Когато използвате puTTY, например, трябва да се уверите, че терминалът е съгласен с останалото:Change settings... Window -> Translation -> Remote character set
=UTF-8
.
Що се отнася до първия ви въпрос, вие вече имате най-доброто решение. Няколко умлаута е най-добре да се заменят с низ от replace()
изявления.
Както изглежда вече знаете, заместванията на единичен знак са по-ефективни с (един) translate()
изявление.
Свързани: