Din serverkodning ser ud til at være UTF8.
Jeg formoder, at din client_encoding
stemmer ikke overens, hvilket kan give dig et forkert indtryk af, hvad du har med at gøre. Tjek med:
SHOW client_encoding; -- in your actual session
Og læs disse relaterede svar:
Kan ikke indsætte tyske tegn i Postgres
Erstat unicode-tegn i PostgreSQL
Resten af værktøjskæden skal også være synkroniseret. Når man for eksempel bruger puTTY, skal man sikre sig, at terminalen er enig med resten:Change settings... Window -> Translation -> Remote character set
=UTF-8
.
Hvad angår dit første spørgsmål, har du allerede den bedste løsning. Et par omlyde erstattes bedst med en streng replace()
udsagn.
Som du synes allerede at vide, er udskiftninger af enkelttegn mere effektive med (en enkelt) translate()
erklæring.
Relateret: