sql >> Database >  >> RDS >> PostgreSQL

Hoe een string naar unicode te converteren met PostgreSQL?

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:




  1. Kan ik een variabele doorgeven om de instructie als kolomnaam in SQL Server te selecteren?

  2. Hoe een probleem met Oracle DBMS_LOB op te lossen?

  3. dayname(curdate()) werkt NIET in codeigniter php

  4. Mijn mysql-statement optimaliseren! - RAND() TE LANG