PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да конвертирате низ в unicode с помощта на PostgreSQL?

Базите данни на PostgreSQL имат естествен тип знаци, "сървърно кодиране". Обикновено е utf-8.

Целият текст е в това кодиране. Текст със смесено кодиране не се поддържа, освен ако се съхранява като bytea (т.е. като непрозрачни последователности от байтове).

Не можете да съхранявате "unicode" или "non-unicode" низове и PostgreSQL няма концепция за "varchar" срещу "nvarchar". С utf-8 знаците, които попадат в 7-битовия ASCII диапазон (и някои други), се съхраняват като един байт, а по-широките знаци изискват повече място за съхранение, така че е просто автоматично. utf-8 изисква повече място за съхранение от ucs-2 или utf-16 за текст, който е изцяло "широк" символ, но по-малко за текст, който е смесен.

PostgreSQL автоматично преобразува към/от текстовото кодиране на клиента, използвайки client_encoding настройка. Няма нужда да преобразувате изрично.

Ако вашият клиент е "Unicode" (което продуктите на Microsoft са склонни да казват, когато имат предвид UCS-2 или UTF-16), тогава повечето клиентски драйвери се грижат за всяко utf-8 <--> utf-16 преобразуване вместо вас.

Така че не трябва да ви пука, стига вашият клиент да извършва I/O с правилни опции за набор от символи и да задава правилно client_encoding който съвпада с данните, които действително изпраща по кабела. (Това е автоматично с повечето клиентски драйвери като PgJDBC, nPgSQL или Unicode psqlODBC драйвера).

Вижте:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Инсталиране на PostgreSQL на Docker

  2. Какво да проверите дали използването на паметта на PostgreSQL е високо

  3. 2 начина за изброяване на всички тригери в PostgreSQL база данни

  4. Как да премахнете връщане на карета и нови редове в Postgresql?

  5. защо PG::UniqueViolation:ГРЕШКА:дублираната стойност на ключа нарушава уникалното ограничение?