sql >> Database >  >> RDS >> PostgreSQL

Vervang tekens door tekenreeksen van meerdere tekens

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:



  1. Dubbele invoer voor sleutel 'PRIMARY'. De spaties voor strings negeren

  2. Volgorde van verwijdering met externe sleutelbeperkingen,

  3. De AUTO_INCREMENT-waarde van alle tabellen in een MySQL-database bijwerken

  4. Attribuut nummer 10 overschrijdt aantal kolommen 0