Uw servercodering lijkt UTF8 te zijn.
Ik vermoed uw client_encoding
komt niet overeen, waardoor u een verkeerd beeld krijgt van waar u mee te maken heeft. Controleer met:
SHOW client_encoding; -- in your actual session
En lees deze gerelateerde antwoorden:
Kan geen Duitse tekens invoegen in Postgres
Unicode-tekens vervangen in PostgreSQL
De rest van de gereedschapsketen moet ook synchroon lopen. Als je bijvoorbeeld puTTY gebruikt, moet je ervoor zorgen dat de terminal het eens is met de rest:Change settings... Window -> Translation -> Remote character set
=UTF-8
.
Wat uw eerste vraag betreft, u heeft al de beste oplossing. Een paar umlauts kunnen het beste worden vervangen door een string van replace()
verklaringen.
Zoals u al lijkt te weten, zijn vervangingen van enkelvoudige tekens efficiënter met (een enkele) translate()
verklaring.
Gerelateerd:
- Unicode-tekens vervangen in PostgreSQL
- Regex verwijdert alle voorkomens van meerdere tekens in een string