Postgres pro szabvány dokumentáció 9
24.3. Támogatás a kódolások
Támogatja kódolás Postgres Pro lehetővé teszi, hogy tárolja a szöveget különböző kódolások, köztük egy byte-os kódolások, például a család tagjai az ISO 8859 és a több-bájtos kódolás, mint az EUC (Extended Unix-kód), az UTF-8 és Mule belső kódot. Minden támogatott kódolások is átlátható az ügyfelek által használt, de néhány nem támogatja a szerver (mint a szerver kódolás). Az alapértelmezett kódolás van kiválasztva inicializálása során a klaszter Postgres Pro adatbázis használatával initdb. Meg lehet felülbírálni, ha egy adatbázis létrehozása, amely lehetővé teszi, hogy több adatbázis különböző karaktereket.
Egy fontos korlátozás, azonban az, hogy a kódolási egyes adatbázis összeegyeztethetőnek kell lennie a paraméterek területi LC_CTYPE adatbázis (osztályozás szimbólumok) és LC_COLLATE (rendezési sorrendje a sorok). C vagy POSIX locale segítségével bármilyen karakterkészlet, de más helyszíneken csak egy kódolási, hogy működni fog-e. (Ugyanakkor a környezetben a Windows kódolás UTF-8 is használható bármilyen beállítás.)
24.3.1. támogatott kódolások
Táblázat 24.1 bemutatja a kódolás áll a használatra Postgres Pro.
Táblázat 24.1. Kódolás Postgres Pro
Támogatás a kiszolgálón
Bájtot karakter
Hagyományos kínai karakterek
Bővített UNIX Code-CN
Egyszerűsített kínai karakterek
Bővített UNIX Code-JP
Bővített UNIX Code-JP, JIS X 0213
Bővített UNIX Code-KR
Bővített UNIX Code-TW
A hagyományos kínai karakterek, tajvani
Részletes nemzeti szabvány
Egyszerűsített kínai karakterek
ISO 8859-5, ECMA 113
ISO 8859-6, ECMA 114
ISO 8859-7, ECMA 118
ISO 8859-8, ECMA 121
ISO 8859-1, ECMA 94
ISO 8859-2, ECMA 94
ISO 8859-3, ECMA 94
ISO 8859-4, ECMA 94
ISO 8859-9, ECMA 128
ISO 8859-10, ECMA 144
Latin1 c európai nyelvek és nyelvjárások
ISO 8859-16, ASRO SR 14111
Mule belső kód
Mskanji. ShiftJIS. WIN932. Windows932
Shift JIS, JIS X 0213
Ismeretlen (cm. Szöveg)
Egységes hangul Code
ABC. TCVN. TCVN5712. VSCII
Nem minden ügyfél API támogatja ezen kódolási. Például JDBC Postgres Pro interfész meghajtó nem támogatja MULE_INTERNAL. LATIN6. LATIN8 és LATIN10.
24.3.2. kódolási beállítás
initdb meghatározza az alapértelmezett karakterkódolást Postgres Pro klaszter. Például,
beállítja az alapértelmezett kódolást EUC_JP (Extended kódolási rendszert a japán nyelv). Ezt fel lehet használni, hanem --encoding -E esetében hosszabb preferencia paraméter neveket. Ha a paraméter -E vagy --encoding nincs megadva, initdb megpróbálja meghatározni a megfelelő kódolási függően a megadott, vagy az alapértelmezett beállításokkal.
Amikor létrehoz egy adatbázist, akkor a kódolást, amely eltér az alapértelmezett, ha a kódolás kompatibilis a kiválasztott locale:
Ez létrehoz egy adatbázist nevű koreai. mely a kódolás és területi EUC_KR ko_KR. Is, akkor a kívánt eredményt segítségével az SQL-parancsot:
adatbázis kódolása a rendszerben tárolt katalógusban pg_database. Látható a psql -l opció vagy command \ l.
A legtöbb modern Postgres Pro operációs rendszer meg tudja határozni, melyik karakter értünk LC_CTYPE beállítást. amely biztosítja, hogy csak a megfelelő adatbázis kódolás. A régebbi rendszerek, akkor függetlenül biztosítják, hogy a kódolást használunk, akkor megfelel a kiválasztott nyelvi közegben. A hiba ezen a területen valószínűleg furcsa viselkedését locale-függő műveletek, mint a válogatás.
Postgres Pro lehetővé teszi, hogy a felettes adatbázisokat létrehozni a kódoló SQL_ASCII. akkor is, ha LC_CTYPE érték a C vagy POSIX. Mint már említettük, SQL_ASCII nem garantálja, hogy a tárolt adatok az adatbázisban egy bizonyos karakterkódolás és így ez a lehetőség tele van kudarcok kapcsolódó locale. Ezzel kombinációja dátum és lehet teljesen tilos.
24.3.3. Automatikus kódkonverzió szerver és kliens közötti
Postgres Pro támogatja az automatikus kódkonverzió szerver és kliens közötti bizonyos karakterkészletek kombinációk. Tájékoztatás a konverzió a rendszerben tárolt katalógusban pg_conversion. Postgres Pro tartalmaz néhány előre meghatározott kódolási, táblázatban bemutatott 24.2. Lehetőség van, hogy hozzon létre egy új átkódolás az SQL-parancs CREATE átalakítás.
Táblázat 24.2. Kliens-szerver konverziós karakterkészletek
Elérhető ügyfél kódolás
Annak érdekében, hogy az automatikus szimbólum konverzió, meg kell mondanunk Postgres Pro kódolást használni kívánt kliens oldalon. Ezt meg lehet tenni több módon:
A parancs \ kódolás a PostgreSQL-ben. \ Kódolás lehetővé teszi, hogy gyorsan változik az ügyfél kódolást. Például, hogy módosítsa a kódolás SJIS. írja:SET client_encoding TO. Az ügyfél-kódolás az alábbi SQL-parancsot:
Szintén erre a célra, akkor a szokásos szintaxis az SQL SET NAMES.
Szerezd meg a jelenlegi kliens kódolás:
Visszatérhet az alapértelmezett kódolás:Használata változó client_encoding konfiguráció. Ha a változó client_encoding. az említett ügyfél kódolás automatikusan kiválasztódik, ha a kiszolgálóhoz való csatlakozás. (A jövőben, ez lehet felülírják a fent említett módszerek.)
Ha bizonyos karaktereket nem lehet átkódolni (feltételezve, hogy a kiválasztott EUC_JP latin1 szerver és kliens, és átadta néhány japán karakterek nem jelennek meg a latin1), hiba történik.
Ha az ügyfél kódolás definiáljuk SQL_ASCII. átkódolás van tiltva, függetlenül attól, hogy a szerver kódolást. Mivel a szerver, ne használja SQL_ASCII. ha nem dolgozik, az adatok, hogy teljes mértékben összhangban van az ASCII.
24.3.4. További információforrások
Javasolt források kezdeni tanulni különféle kódolási rendszereket.
Az információfeldolgozás, a kínai, japán, koreai Vietnami.
Weboldal Unicode Consortium. RFC 3629
UTF -8 (formátum átalakítás 8-bites UCS / Unicode) az itt meghatározott.