Ihre Servercodierung scheint UTF8 zu sein.
Ich vermute Ihre client_encoding
nicht übereinstimmt, wodurch Sie möglicherweise einen falschen Eindruck davon bekommen, womit Sie es zu tun haben. Überprüfen Sie mit:
SHOW client_encoding; -- in your actual session
Und lesen Sie diese zugehörigen Antworten:
Kann keine deutschen Zeichen in Postgres einfügen
Unicode-Zeichen in PostgreSQL ersetzen
Auch der Rest der Toolkette muss synchron sein. Bei der Verwendung von PuTTY muss man zum Beispiel darauf achten, dass das Terminal mit dem Rest übereinstimmt:Change settings... Window -> Translation -> Remote character set
=UTF-8
.
Was Ihre erste Frage betrifft, haben Sie bereits die beste Lösung. Ein paar Umlaute werden am besten durch eine Zeichenfolge von replace()
ersetzt Aussagen.
Wie Sie bereits zu wissen scheinen, ist das Ersetzen einzelner Zeichen effizienter mit (einem einzigen) translate()
Aussage.
Verwandte:
- Ersetzen Sie Unicode-Zeichen in PostgreSQL
- Regex entfernt alle Vorkommen mehrerer Zeichen in einer Zeichenfolge