sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan konverteres streng til unicode ved hjælp af PostgreSQL?

PostgreSQL-databaser har en indbygget karaktertype, "serverkodningen". Det er normalt utf-8.

Al tekst er i denne kodning. Blandet kodningstekst understøttes ikke, undtagen hvis den er gemt som bytea (dvs. som uigennemsigtige byte-sekvenser).

Du kan ikke gemme "unicode" eller "ikke-unicode" strenge, og PostgreSQL har intet begreb om "varchar" vs "nvarchar". Med utf-8 bliver tegn, der falder i 7-bit ASCII-området (og nogle andre) gemt som en enkelt byte, og bredere tegn kræver mere lagerplads, så det er bare automatisk. utf-8 kræver mere lagerplads end ucs-2 eller utf-16 for tekst, der alle er "brede" tegn, men mindre for tekst, der er en blanding.

PostgreSQL konverterer automatisk til/fra klientens tekstkodning ved hjælp af client_encoding indstilling. Det er ikke nødvendigt at konvertere eksplicit.

Hvis din klient er "Unicode" (hvilket Microsoft-produkter plejer at sige, når de betyder UCS-2 eller UTF-16), så tager de fleste klientdrivere sig af enhver utf-8 <--> utf-16 konvertering for dig.

Så du burde ikke være ligeglad, så længe din klient udfører I/O med korrekte tegnsætindstillinger og indstiller en korrekt client_encoding der matcher de data, den faktisk sender på ledningen. (Dette er automatisk med de fleste klientdrivere som PgJDBC, nPgSQL eller Unicode psqlODBC-driveren).

Se:




  1. mysql ny brugeradgang nægtet

  2. hvordan ser et B-træindeks på mere end 1 kolonne ud?

  3. Spring JDBC-forbindelsespulje og InputStream-resultater

  4. Hvor man sikkert opbevarer databaselegitimationsoplysninger på et PHP-websted