La codifica del tuo server sembra essere UTF8.
Sospetto che il tuo client_encoding
non corrisponde, il che potrebbe darti un'idea sbagliata di ciò con cui hai a che fare. Verifica con:
SHOW client_encoding; -- in your actual session
E leggi queste risposte correlate:
Impossibile inserire caratteri tedeschi in Postgres
Sostituisci i caratteri unicode in PostgreSQL
Anche il resto della catena di strumenti deve essere sincronizzato. Quando si utilizza puTTY, ad esempio, è necessario assicurarsi che il terminale sia d'accordo con il resto:Change settings... Window -> Translation -> Remote character set
=UTF-8
.
Per quanto riguarda la tua prima domanda, hai già la soluzione migliore. È meglio sostituire un paio di dieresi con una stringa di replace()
dichiarazioni.
Come sembri già sapere, le sostituzioni di un singolo carattere sono più efficienti con (un singolo) translate()
dichiarazione.
Correlati:
- Sostituisci i caratteri unicode in PostgreSQL
- Regex rimuove tutte le occorrenze di più caratteri in una stringa