PostgreSQL-databases hebben een native tekentype, de "server-codering". Het is meestal utf-8.
Alle tekst is in deze codering. Gemengde coderingstekst wordt niet ondersteund, behalve indien opgeslagen als bytea
(d.w.z. als ondoorzichtige bytesequenties).
U kunt geen "unicode"- of "niet-unicode"-tekenreeksen opslaan en PostgreSQL heeft geen concept van "varchar" versus "nvarchar". Met utf-8 worden tekens die binnen het 7-bits ASCII-bereik vallen (en enkele andere) opgeslagen als een enkele byte, en bredere tekens vereisen meer opslagruimte, dus het is gewoon automatisch. utf-8 vereist meer opslagruimte dan ucs-2 of utf-16 voor tekst die allemaal "brede" tekens is, maar minder voor tekst die een mengeling is.
PostgreSQL converteert automatisch van/naar de tekstcodering van de client, met behulp van de client_encoding
instelling. Het is niet nodig om expliciet te converteren.
Als uw client "Unicode" is (wat Microsoft-producten meestal zeggen als ze UCS-2 of UTF-16 bedoelen), dan zorgen de meeste clientstuurprogramma's voor utf-8 <--> utf-16-conversie.
U hoeft zich dus geen zorgen te maken, zolang uw client I/O uitvoert met de juiste tekenset-opties en een correcte client_encoding
instelt die overeenkomt met de gegevens die het daadwerkelijk op de draad verzendt. (Dit gaat automatisch bij de meeste clientstuurprogramma's zoals PgJDBC, nPgSQL of het Unicode psqlODBC-stuurprogramma).
Zie: