22.3. ÐоддеÑжка кодиÑовок
ÐоддеÑжка кодиÑовок в Postgres Pro позволÑÐµÑ Ñ
ÑаниÑÑ ÑекÑÑ Ð² ÑазлиÑнÑÑ
кодиÑовкаÑ
, вклÑÑÐ°Ñ Ð¾Ð´Ð½Ð¾Ð±Ð°Ð¹ÑовÑе кодиÑовки, Ñакие как вÑ
одÑÑие в ÑемейÑÑво ISO 8859 и многобайÑовÑе кодиÑовки, Ñакие как EUC (Extended Unix Code), UTF-8 и внÑÑÑенний код Mule. ÐÑе поддеÑживаемÑе кодиÑовки могÑÑ Ð¿ÑозÑаÑно иÑполÑзоваÑÑÑÑ ÐºÐ»Ð¸ÐµÐ½Ñами, но некоÑоÑÑе не поддеÑживаÑÑÑÑ ÑеÑвеÑом (в каÑеÑÑве ÑеÑвеÑной кодиÑовки). ÐодиÑовка по ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÑбиÑаеÑÑÑ Ð¿Ñи иниÑиализаÑии клаÑÑеÑа Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
Postgres Pro пÑи помоÑи initdb. Ðна Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÐµÑеопÑеделена пÑи Ñоздании Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, ÑÑо позволÑÐµÑ Ð¸Ð¼ÐµÑÑ Ð½ÐµÑколÑко баз даннÑÑ
Ñ ÑазнÑми кодиÑовками.
ÐажнÑм огÑаниÑением, однако, ÑвлÑеÑÑÑ Ñо, ÑÑо кодиÑовка каждой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
должна бÑÑÑ ÑовмеÑÑима Ñ Ð¿Ð°ÑамеÑÑами локали Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
LC_CTYPE (клаÑÑиÑикаÑÐ¸Ñ Ñимволов) и LC_COLLATE (поÑÑдок ÑоÑÑиÑовки ÑÑÑок). ÐÐ»Ñ Ð»Ð¾ÐºÐ°Ð»Ð¸ C или POSIX подойдÑÑ Ð»Ñбой Ð½Ð°Ð±Ð¾Ñ Ñимволов, но Ð´Ð»Ñ Ð´ÑÑгиÑ
локалей, пÑедоÑÑавлÑемÑÑ
библиоÑекой libc, еÑÑÑ ÑолÑко один Ð½Ð°Ð±Ð¾Ñ Ñимволов, коÑоÑÑй бÑÐ´ÐµÑ ÑабоÑаÑÑ Ð¿ÑавилÑно. (Ðднако в ÑÑеде Windows кодиÑовка UTF-8 Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ñ Ð»Ñбой локалÑÑ.) ÐÑли Ñ Ð²Ð°Ñ Ð²ÐºÐ»ÑÑена поддеÑжка ICU, локали, пÑедоÑÑавлÑемÑе библиоÑекой ICU, можно иÑполÑзоваÑÑ Ñ Ð±Ð¾Ð»ÑÑинÑÑвом (но не вÑеми) кодиÑовками на ÑÑоÑоне ÑеÑвеÑа.
22.3.1. ÐоддеÑживаемÑе кодиÑовки
ТаблиÑа 22.1 показÑÐ²Ð°ÐµÑ ÐºÐ¾Ð´Ð¸Ñовки, доÑÑÑпнÑе Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² Postgres Pro.
ТаблиÑа 22.1. ÐодиÑовки Postgres Pro
| ÐÐ¼Ñ | ÐпиÑание | ЯзÑк | ÐоддеÑжка на ÑеÑвеÑе | ICU? | ÐайÑов на Ñимвол | ÐÑÐµÐ²Ð´Ð¾Ð½Ð¸Ð¼Ñ |
|---|---|---|---|---|---|---|
BIG5 | Big Five | ТÑадиÑионнÑе киÑайÑкие иеÑоглиÑÑ | ÐÐµÑ | ÐÐµÑ | 1-2 | WIN950, Windows950 |
EUC_CN | Extended UNIX Code-CN | УпÑоÑÑннÑе киÑайÑкие иеÑоглиÑÑ | Ðа | Ðа | 1-3 |  |
EUC_JP | Extended UNIX Code-JP | ЯпонÑкий | Ðа | Ðа | 1-3 |  |
EUC_JIS_2004 | Extended UNIX Code-JP, JIS X 0213 | ЯпонÑкий | Ðа | ÐÐµÑ | 1-3 |  |
EUC_KR | Extended UNIX Code-KR | ÐоÑейÑкий | Ðа | Ðа | 1-3 |  |
EUC_TW | Extended UNIX Code-TW | ТÑадиÑионнÑе киÑайÑкие иеÑоглиÑÑ, ÑайванÑÑкий | Ðа | Ðа | 1-3 |  |
GB18030 | ÐаÑионалÑнÑй ÑÑандаÑÑ | ÐиÑайÑкий | ÐÐµÑ | ÐÐµÑ | 1-4 |  |
GBK | РаÑÑиÑеннÑй наÑионалÑнÑй ÑÑандаÑÑ | УпÑоÑÑннÑе киÑайÑкие иеÑоглиÑÑ | ÐÐµÑ | ÐÐµÑ | 1-2 | WIN936, Windows936 |
ISO_8859_5 | ISO 8859-5, ECMA 113 | ÐаÑинÑкий/ÐиÑиллиÑа | Ðа | Ðа | 1 |  |
ISO_8859_6 | ISO 8859-6, ECMA 114 | ÐаÑинÑкий/ÐÑабÑкий | Ðа | Ðа | 1 |  |
ISO_8859_7 | ISO 8859-7, ECMA 118 | ÐаÑинÑкий/ÐÑеÑеÑкий | Ðа | Ðа | 1 |  |
ISO_8859_8 | ISO 8859-8, ECMA 121 | ÐаÑинÑкий/ÐвÑÐ¸Ñ | Ðа | Ðа | 1 |  |
JOHAB | JOHAB | ÐоÑейÑкий (ХангÑлÑ) | ÐÐµÑ | ÐÐµÑ | 1-3 |  |
KOI8R | KOI8-R | ÐиÑиллиÑа (Ð ÑÑÑкий) | Ðа | Ðа | 1 | KOI8 |
KOI8U | KOI8-U | ÐиÑиллиÑа (УкÑаинÑкий) | Ðа | Ðа | 1 |  |
LATIN1 | ISO 8859-1, ECMA 94 | ÐападноâевÑопейÑкие | Ðа | Ðа | 1 | ISO88591 |
LATIN2 | ISO 8859-2, ECMA 94 | ЦенÑÑалÑноâевÑопейÑкие | Ðа | Ðа | 1 | ISO88592 |
LATIN3 | ISO 8859-3, ECMA 94 | ЮжноâевÑопейÑкие | Ðа | Ðа | 1 | ISO88593 |
LATIN4 | ISO 8859-4, ECMA 94 | СевеÑоâевÑопейÑкие | Ðа | Ðа | 1 | ISO88594 |
LATIN5 | ISO 8859-9, ECMA 128 | ТÑÑеÑкий | Ðа | Ðа | 1 | ISO88599 |
LATIN6 | ISO 8859-10, ECMA 144 | СкандинавÑкие | Ðа | Ðа | 1 | ISO885910 |
LATIN7 | ISO 8859-13 | ÐалÑийÑкие | Ðа | Ðа | 1 | ISO885913 |
LATIN8 | ISO 8859-14 | ÐелÑÑÑкие | Ðа | Ðа | 1 | ISO885914 |
LATIN9 | ISO 8859-15 | LATIN1 c евÑопейÑкими ÑзÑками и диалекÑами | Ðа | Ðа | 1 | ISO885915 |
LATIN10 | ISO 8859-16, ASRO SR 14111 | Ð ÑмÑнÑкий | Ðа | ÐÐµÑ | 1 | ISO885916 |
MULE_INTERNAL | ÐнÑÑÑенний код Mule | ÐÑлÑÑиÑзÑÑнÑй ÑедакÑÐ¾Ñ Emacs | Ðа | ÐÐµÑ | 1-4 |  |
SJIS | Shift JIS | ЯпонÑкий | ÐÐµÑ | ÐÐµÑ | 1-2 | Mskanji, ShiftJIS, WIN932, Windows932 |
SHIFT_JIS_2004 | Shift JIS, JIS X 0213 | ЯпонÑкий | ÐÐµÑ | ÐÐµÑ | 1-2 |  |
SQL_ASCII | не Ñказан (Ñм. ÑекÑÑ) | any | Ðа | ÐÐµÑ | 1 |  |
UHC | УниÑиÑиÑованнÑй код ХангÑÐ»Ñ | ÐоÑейÑкий | ÐÐµÑ | ÐÐµÑ | 1-2 | WIN949, Windows949 |
UTF8 | Unicode, 8-bit | вÑе | Ðа | Ðа | 1-4 | Unicode |
WIN866 | Windows CP866 | ÐиÑиллиÑа | Ðа | Ðа | 1 | ALT |
WIN874 | Windows CP874 | ТайÑкий | Ðа | ÐÐµÑ | 1 |  |
WIN1250 | Windows CP1250 | ЦенÑÑалÑноâевÑопейÑкие | Ðа | Ðа | 1 |  |
WIN1251 | Windows CP1251 | ÐиÑиллиÑа | Ðа | Ðа | 1 | WIN |
WIN1252 | Windows CP1252 | ÐападноâевÑопейÑкие | Ðа | Ðа | 1 |  |
WIN1253 | Windows CP1253 | ÐÑеÑеÑкий | Ðа | Ðа | 1 |  |
WIN1254 | Windows CP1254 | ТÑÑеÑкий | Ðа | Ðа | 1 |  |
WIN1255 | Windows CP1255 | ÐвÑÐ¸Ñ | Ðа | Ðа | 1 |  |
WIN1256 | Windows CP1256 | ÐÑабÑкий | Ðа | Ðа | 1 |  |
WIN1257 | Windows CP1257 | ÐалÑийÑкие | Ðа | Ðа | 1 |  |
WIN1258 | Windows CP1258 | ÐÑеÑнамÑкий | Ðа | Ðа | 1 | ABC, TCVN, TCVN5712, VSCII |
Ðе вÑе клиенÑÑкие API поддеÑживаÑÑ Ð²Ñе пеÑеÑиÑленнÑе кодиÑовки. ÐапÑимеÑ, дÑÐ°Ð¹Ð²ÐµÑ Ð¸Ð½ÑеÑÑейÑа JDBC Postgres Pro не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ MULE_INTERNAL, LATIN6, LATIN8 и LATIN10.
Ðоведение кодиÑовки SQL_ASCII ÑÑÑеÑÑвенно оÑлиÑаеÑÑÑ Ð¾Ñ Ð´ÑÑгиÑ
. Ðогда набоÑом Ñимволов ÑеÑвеÑа ÑвлÑеÑÑÑ SQL_ASCII, ÑеÑÐ²ÐµÑ Ð¸Ð½ÑеÑпÑеÑиÑÑÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¾Ñ 0 до 127 Ð±Ð°Ð¹Ñ ÑоглаÑно кодиÑовке ASCII, Ñогда как знаÑÐµÐ½Ð¸Ñ Ð¾Ñ 128 до 255 воÑпÑинимаÑÑÑÑ ÐºÐ°Ðº незнаÑимÑе. ÐеÑекодиÑовка не бÑÐ´ÐµÑ Ð²Ñполнена пÑи вÑбоÑе SQL_ASCII. Таким обÑазом, ÑÑÐ¾Ñ Ð²Ð°ÑÐ¸Ð°Ð½Ñ ÑвлÑеÑÑÑ Ð½Ðµ ÑÑолÑко обÑÑвлением Ñого, ÑÑо иÑполÑзÑеÑÑÑ Ð¾Ð¿ÑеделÑÐ½Ð½Ð°Ñ ÐºÐ¾Ð´Ð¸Ñовка, ÑколÑко обÑÑвлением Ñого, ÑÑо кодиÑовка игноÑиÑÑеÑÑÑ. РболÑÑинÑÑве ÑлÑÑаев, еÑли Ð²Ñ ÑабоÑаеÑе Ñ Ð»ÑбÑми даннÑми, оÑлиÑнÑми Ð¾Ñ ASCII, не ÑÑÐ¾Ð¸Ñ Ð¸ÑполÑзоваÑÑ SQL_ASCII, Ñак как Postgres Pro не ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿ÑеобÑазоваÑÑ Ð¸Ð»Ð¸ пÑовеÑиÑÑ ÑимволÑ, оÑлиÑнÑе Ð¾Ñ ASCII.
22.3.2. ÐаÑÑÑойка кодиÑовки
initdb опÑеделÑÐµÑ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ ÐºÐ»Ð°ÑÑеÑа Postgres Pro. ÐапÑимеÑ,
initdb -E EUC_JP
наÑÑÑÐ°Ð¸Ð²Ð°ÐµÑ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð½Ð° EUC_JP (РаÑÑиÑÐµÐ½Ð½Ð°Ñ ÑиÑÑема кодиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ ÑпонÑкого ÑзÑка). Ðожно иÑполÑзоваÑÑ --encoding вмеÑÑо -E в ÑлÑÑае пÑедпоÑÑÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ длиннÑÑ
имÑн паÑамеÑÑов. ÐÑли паÑамеÑÑ -E или --encoding не задан, initdb пÑÑаеÑÑÑ Ð¾Ð¿ÑеделиÑÑ Ð¿Ð¾Ð´Ñ
одÑÑÑÑ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ Ð² завиÑимоÑÑи Ð¾Ñ Ñказанной или заданной по ÑмолÑÐ°Ð½Ð¸Ñ Ð»Ð¾ÐºÐ°Ð»Ð¸.
ÐÑи Ñоздании Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑказаÑÑ ÐºÐ¾Ð´Ð¸ÑовкÑ, оÑлиÑнÑÑ Ð¾Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ по ÑмолÑаниÑ, еÑли ÑÑа кодиÑовка ÑовмеÑÑима Ñ Ð²ÑбÑанной локалÑÑ:
createdb -E EUC_KR -T template0 --lc-collate=ko_KR.euckr --lc-ctype=ko_KR.euckr korean
ÐÑо ÑоздаÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ korean, коÑоÑÐ°Ñ Ð¸ÑполÑзÑÐµÑ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ EUC_KR и Ð»Ð¾ÐºÐ°Ð»Ñ ko_KR. Также, полÑÑиÑÑ Ð¶ÐµÐ»Ð°ÐµÐ¼Ñй ÑезÑлÑÑÐ°Ñ Ð¼Ð¾Ð¶Ð½Ð¾ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð´Ð°Ð½Ð½Ð¾Ð¹ SQL-командÑ:
CREATE DATABASE korean WITH ENCODING 'EUC_KR' LC_COLLATE='ko_KR.euckr' LC_CTYPE='ko_KR.euckr' TEMPLATE=template0;
ÐамеÑÑÑе, ÑÑо пÑиведÑннÑе вÑÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð·Ð°Ð´Ð°ÑÑ ÐºÐ¾Ð¿Ð¸Ñование Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
template0. ÐÑи копиÑовании лÑбой дÑÑгой Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, паÑамеÑÑÑ Ð»Ð¾ÐºÐ°Ð»Ð¸ и кодиÑÐ¾Ð²ÐºÑ Ð¸ÑÑ
одной Ð±Ð°Ð·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð½ÐµÐ»ÑзÑ, Ñак как ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к иÑÐºÐ°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
. Ðолее подÑобное опиÑание пÑиведено в Разделе 21.3.
ÐодиÑовка Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
Ñ
ÑаниÑÑÑ Ð² ÑиÑÑемном каÑалоге pg_database. ÐÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑвидеÑÑ Ð¿Ñи помоÑи паÑамеÑÑа psql -l или ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ \l.
$ psql -l
List of databases
Name | Owner | Encoding | Collation | Ctype | Access Privileges
-----------+----------+-----------+-------------+-------------+-------------------------------------
clocaledb | hlinnaka | SQL_ASCII | C | C |
englishdb | hlinnaka | UTF8 | en_GB.UTF8 | en_GB.UTF8 |
japanese | hlinnaka | UTF8 | ja_JP.UTF8 | ja_JP.UTF8 |
korean | hlinnaka | EUC_KR | ko_KR.euckr | ko_KR.euckr |
postgres | hlinnaka | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 |
template0 | hlinnaka | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 | {=c/hlinnaka,hlinnaka=CTc/hlinnaka}
template1 | hlinnaka | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 | {=c/hlinnaka,hlinnaka=CTc/hlinnaka}
(7 rows)
Ðажно
Ðа болÑÑинÑÑве ÑовÑеменнÑÑ
опеÑаÑионнÑÑ
ÑиÑÑем Postgres Pro Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð¿ÑеделиÑÑ, ÐºÐ°ÐºÐ°Ñ ÐºÐ¾Ð´Ð¸Ñовка подÑазÑмеваеÑÑÑ Ð¿Ð°ÑамеÑÑом LC_CTYPE, ÑÑо обеÑпеÑÐ¸Ñ Ð¸ÑполÑзование ÑолÑко ÑооÑвеÑÑÑвÑÑÑей кодиÑовки Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. Ðа более ÑÑаÑÑÑ
ÑиÑÑемаÑ
необÑ
одимо ÑамоÑÑоÑÑелÑно ÑледиÑÑ Ð·Ð° Ñем, ÑÑÐ¾Ð±Ñ Ð¸ÑполÑзовалаÑÑ ÐºÐ¾Ð´Ð¸Ñовка, ÑооÑвеÑÑÑвÑÑÑÐ°Ñ Ð²ÑбÑанной ÑзÑковой ÑÑеде. ÐÑибка в ÑÑой облаÑÑи, ÑкоÑее вÑего, пÑиведÑÑ Ðº ÑÑÑÐ°Ð½Ð½Ð¾Ð¼Ñ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð·Ð°Ð²Ð¸ÑимÑÑ
Ð¾Ñ Ð»Ð¾ÐºÐ°Ð»Ð¸ опеÑаÑий, ÑакиÑ
как ÑоÑÑиÑовка.
Postgres Pro Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ ÑÑпеÑполÑзоваÑелÑм ÑоздаваÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
Ñ ÐºÐ¾Ð´Ð¸Ñовкой SQL_ASCII, даже когда знаÑение LC_CTYPE не ÑÑÑановлено в C или POSIX. Ðак бÑло Ñказано вÑÑе, SQL_ASCII не гаÑанÑиÑÑеÑ, ÑÑо даннÑе, Ñ
ÑанÑÑиеÑÑ Ð² базе, имеÑÑ Ð¾Ð¿ÑеделÑннÑÑ ÐºÐ¾Ð´Ð¸ÑовкÑ, и Ñаким обÑазом, ÑÑÐ¾Ñ Ð²ÑÐ±Ð¾Ñ ÑÑÐµÐ²Ð°Ñ ÑбоÑми, ÑвÑзаннÑми Ñ Ð»Ð¾ÐºÐ°Ð»ÑÑ. ÐÑполÑзование данной комбинаÑии ÑÑÑаÑело и, возможно, бÑÐ´ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð·Ð°Ð¿ÑеÑено.
22.3.3. ÐвÑомаÑиÑеÑÐºÐ°Ñ Ð¿ÐµÑекодиÑовка Ð¼ÐµÐ¶Ð´Ñ ÑеÑвеÑом и клиенÑом
Postgres Pro поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð°Ð²ÑомаÑиÑеÑкÑÑ Ð¿ÐµÑекодиÑÐ¾Ð²ÐºÑ Ð¼ÐµÐ¶Ð´Ñ ÑеÑвеÑом и клиенÑом Ð´Ð»Ñ Ð¾Ð¿ÑеделÑннÑÑ
комбинаÑий кодиÑовок. ÐнÑоÑмаÑиÑ, каÑаÑÑаÑÑÑ Ð¿ÐµÑекодиÑовки, Ñ
ÑаниÑÑÑ Ð² ÑиÑÑемном каÑалоге pg_conversion. Postgres Pro вклÑÑÐ°ÐµÑ Ð² ÑÐµÐ±Ñ Ð½ÐµÐºÐ¾ÑоÑÑе пÑедопÑеделÑннÑе кодиÑовки, как показано в ТаблиÑе 22.2. ÐÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ ÑоздаÑÑ Ð½Ð¾Ð²ÑÑ Ð¿ÐµÑекодиÑÐ¾Ð²ÐºÑ Ð¿Ñи помоÑи SQL-ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ CREATE CONVERSION.
ТаблиÑа 22.2. ÐлиенÑ-ÑеÑвеÑнÑе пеÑекодиÑовки набоÑов Ñимволов
| СеÑвеÑÐ½Ð°Ñ ÐºÐ¾Ð´Ð¸Ñовка | ÐоÑÑÑпнÑе клиенÑÑкие кодиÑовки |
|---|---|
BIG5 | не поддеÑживаеÑÑÑ ÐºÐ°Ðº ÑеÑвеÑÐ½Ð°Ñ ÐºÐ¾Ð´Ð¸Ñовка |
EUC_CN | EUC_CN, MULE_INTERNAL, UTF8 |
EUC_JP | EUC_JP, MULE_INTERNAL, SJIS, UTF8 |
EUC_JIS_2004 | EUC_JIS_2004, SHIFT_JIS_2004, UTF8 |
EUC_KR | EUC_KR, MULE_INTERNAL, UTF8 |
EUC_TW | EUC_TW, BIG5, MULE_INTERNAL, UTF8 |
GB18030 | не поддеÑживаеÑÑÑ ÐºÐ°Ðº ÑеÑвеÑÐ½Ð°Ñ ÐºÐ¾Ð´Ð¸Ñовка |
GBK | не поддеÑживаеÑÑÑ ÐºÐ°Ðº ÑеÑвеÑÐ½Ð°Ñ ÐºÐ¾Ð´Ð¸Ñовка |
ISO_8859_5 | ISO_8859_5, KOI8R, MULE_INTERNAL, UTF8, WIN866, WIN1251 |
ISO_8859_6 | ISO_8859_6, UTF8 |
ISO_8859_7 | ISO_8859_7, UTF8 |
ISO_8859_8 | ISO_8859_8, UTF8 |
JOHAB | не поддеÑживаеÑÑÑ ÐºÐ°Ðº ÑеÑвеÑÐ½Ð°Ñ ÐºÐ¾Ð´Ð¸Ñовка |
KOI8R | KOI8R, ISO_8859_5, MULE_INTERNAL, UTF8, WIN866, WIN1251 |
KOI8U | KOI8U, UTF8 |
LATIN1 | LATIN1, MULE_INTERNAL, UTF8 |
LATIN2 | LATIN2, MULE_INTERNAL, UTF8, WIN1250 |
LATIN3 | LATIN3, MULE_INTERNAL, UTF8 |
LATIN4 | LATIN4, MULE_INTERNAL, UTF8 |
LATIN5 | LATIN5, UTF8 |
LATIN6 | LATIN6, UTF8 |
LATIN7 | LATIN7, UTF8 |
LATIN8 | LATIN8, UTF8 |
LATIN9 | LATIN9, UTF8 |
LATIN10 | LATIN10, UTF8 |
MULE_INTERNAL | MULE_INTERNAL, BIG5, EUC_CN, EUC_JP, EUC_KR, EUC_TW, ISO_8859_5, KOI8R, LATIN1 to LATIN4, SJIS, WIN866, WIN1250, WIN1251 |
SJIS | не поддеÑживаеÑÑÑ ÐºÐ°Ðº ÑеÑвеÑÐ½Ð°Ñ ÐºÐ¾Ð´Ð¸Ñовка |
SHIFT_JIS_2004 | не поддеÑживаеÑÑÑ ÐºÐ°Ðº ÑеÑвеÑÐ½Ð°Ñ ÐºÐ¾Ð´Ð¸Ñовка |
SQL_ASCII | лÑÐ±Ð°Ñ (пеÑекодиÑовка не бÑÐ´ÐµÑ Ð²Ñполнена) |
UHC | не поддеÑживаеÑÑÑ ÐºÐ°Ðº ÑеÑвеÑÐ½Ð°Ñ ÐºÐ¾Ð´Ð¸Ñовка |
UTF8 | вÑе поддеÑживаемÑе кодиÑовки |
WIN866 | WIN866, ISO_8859_5, KOI8R, MULE_INTERNAL, UTF8, WIN1251 |
WIN874 | WIN874, UTF8 |
WIN1250 | WIN1250, LATIN2, MULE_INTERNAL, UTF8 |
WIN1251 | WIN1251, ISO_8859_5, KOI8R, MULE_INTERNAL, UTF8, WIN866 |
WIN1252 | WIN1252, UTF8 |
WIN1253 | WIN1253, UTF8 |
WIN1254 | WIN1254, UTF8 |
WIN1255 | WIN1255, UTF8 |
WIN1256 | WIN1256, UTF8 |
WIN1257 | WIN1257, UTF8 |
WIN1258 | WIN1258, UTF8 |
ЧÑÐ¾Ð±Ñ Ð²ÐºÐ»ÑÑиÑÑ Ð°Ð²ÑомаÑиÑеÑкÑÑ Ð¿ÐµÑекодиÑÐ¾Ð²ÐºÑ Ñимволов, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑообÑиÑÑ Postgres Pro кодиÑовкÑ, коÑоÑÑÑ Ð²Ñ Ñ Ð¾Ñели Ð±Ñ Ð¸ÑполÑзоваÑÑ Ð½Ð° ÑÑоÑоне клиенÑа. ÐÑо можно вÑполниÑÑ Ð½ÐµÑколÑкими ÑпоÑобами:
ÐÑполÑзование командÑ
\encodingв psql.\encodingпозволÑÐµÑ Ð¾Ð¿ÐµÑаÑивно изменÑÑÑ ÐºÐ»Ð¸ÐµÐ½ÑÑкÑÑ ÐºÐ¾Ð´Ð¸ÑовкÑ. ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ Ð½Ð°SJIS, введиÑе:\encoding SJIS
libpq (Раздел 31.10) Ð¸Ð¼ÐµÐµÑ ÑÑнкÑии, Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½ÑÑкой кодиÑовкой.
ÐÑполÑзование
SET client_encoding TO. ÐлиенÑÑÐºÐ°Ñ ÐºÐ¾Ð´Ð¸Ñовка ÑÑÑанавливаеÑÑÑ ÑледÑÑÑей SQL-командой:SET CLIENT_ENCODING TO '
value';Также, Ð´Ð»Ñ ÑÑой Ñели можно иÑполÑзоваÑÑ ÑÑандаÑÑнÑй ÑинÑакÑÐ¸Ñ SQL
SET NAMES:SET NAMES '
value';ÐолÑÑиÑÑ ÑекÑÑÑÑ ÐºÐ»Ð¸ÐµÐ½ÑÑкÑÑ ÐºÐ¾Ð´Ð¸ÑовкÑ:
SHOW client_encoding;
ÐеÑнÑÑÑ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ Ð¿Ð¾ ÑмолÑаниÑ:
RESET client_encoding;
ÐÑполÑзование
PGCLIENTENCODING. ÐÑли ÑÑÑановлена пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾ÐºÑÑжениÑPGCLIENTENCODING, Ñо ÑÑа клиенÑÑÐºÐ°Ñ ÐºÐ¾Ð´Ð¸Ñовка вÑбиÑаеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки пÑи подклÑÑении к ÑеÑвеÑÑ. (РдалÑнейÑем ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÐµÑеопÑеделено пÑи помоÑи лÑбого из меÑодов, ÑказаннÑÑ Ð²ÑÑе.)ÐÑполÑзование пеÑеменной конÑигÑÑаÑии client_encoding. ÐÑли задана пеÑеменнаÑ
client_encoding, ÑÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ»Ð¸ÐµÐ½ÑÑÐºÐ°Ñ ÐºÐ¾Ð´Ð¸Ñовка вÑбиÑаеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки пÑи подклÑÑении к ÑеÑвеÑÑ. (РдалÑнейÑем ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÐµÑеопÑеделено пÑи помоÑи лÑбого из меÑодов, ÑказаннÑÑ Ð²ÑÑе.)
ÐÑли пеÑекодиÑовка опÑеделÑнного Ñимвола невозможна (пÑедположим, вÑбÑÐ°Ð½Ñ EUC_JP Ð´Ð»Ñ ÑеÑвеÑа и LATIN1 Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñа, и пеÑедаÑÑÑÑ Ð½ÐµÐºÐ¾ÑоÑÑе ÑпонÑкие иеÑоглиÑÑ, не пÑедÑÑавленнÑе в LATIN1), Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÐµÑ Ð¾Ñибка.
ÐÑли клиенÑÑÐºÐ°Ñ ÐºÐ¾Ð´Ð¸Ñовка опÑеделена как SQL_ASCII, пеÑекодиÑовка оÑклÑÑаеÑÑÑ Ð²Ð½Ðµ завиÑимоÑÑи Ð¾Ñ ÐºÐ¾Ð´Ð¸Ñовки ÑеÑвеÑа. ЧÑо же каÑаеÑÑÑ ÑеÑвеÑа, не ÑÑÐ¾Ð¸Ñ Ð¸ÑполÑзоваÑÑ SQL_ASCII, еÑли ÑолÑко Ð²Ñ Ð½Ðµ ÑабоÑаеÑе Ñ Ð´Ð°Ð½Ð½Ñми, коÑоÑÑе полноÑÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ASCII.
22.3.4. ÐополниÑелÑнÑе иÑÑоÑники инÑоÑмаÑии
РекомендÑемÑе иÑÑоÑники Ð´Ð»Ñ Ð½Ð°Ñала изÑÑÐµÐ½Ð¸Ñ ÑазлиÑнÑÑ Ð²Ð¸Ð´Ð¾Ð² ÑиÑÑем кодиÑованиÑ.
- ÐбÑабоÑка инÑоÑмаÑии на киÑайÑком, ÑпонÑком, коÑейÑком & вÑеÑнамÑком ÑзÑÐºÐ°Ñ .
СодеÑÐ¶Ð¸Ñ Ð¿Ð¾Ð´ÑобнÑе обÑÑÑÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾
EUC_JP,EUC_CN,EUC_KR,EUC_TW.- http://www.unicode.org/
Ð¡Ð°Ð¹Ñ Unicode Consortium.
- RFC 3629
UTF-8 (ÑоÑÐ¼Ð°Ñ Ð¿ÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ 8-биÑного UCS/Unicode) опÑеделÑн здеÑÑ.