PostgreSQL에서 지원하는 문자 집합을 사용하면 ISO 8859 같은 싱글바이트 문자 집합 및 EUC(Extended Unix Code), UTF-8, 뮬 내부코드 같은
멀티바이트 문자 집합을 비롯한 다양한 문자 집합으로 텍스트를 저장할 수 있다.
지원되는 모든 문자 집합은 클라이언트에서 사용 가능한 것이 확실하지만,
몇 가지는 서버 내에서의 사용이 지원되지 않는다(즉, 서버 측 인코딩).
기본 문자 집합은 initdb
를 사용하여 PostgreSQL 데이터베이스 클러스터를 초기화하면서 선택된다.
오버라이드는 데이터베이스를 생성할 때 가능하므로 복수의 데이터베이스 각각 문자 집합이 서로 다를 수 있다.
하지만, 각 데이터베이스 문자 집합은 데이터베이스의 LC_CTYPE
(문자 분류) 및 LC_COLLATE
(string 정렬 순서) 로케일(locale) 설정과 호환되어야 한다는 중요한 제약이 있다.
C
또는 POSIX
로케일(locale)의 경우 멀티바이트 문자 집합이 허용되지만, libc 라이브러리에 기반한 다른 로케일(locale)의 경우 싱글바이트 문자 집합에 대해서만 정상 작동한다.
(그러나 Windows의 경우 UTF-8 인코딩은 모든 로케일(locale)에서 사용할 수 있다.)
If you have ICU support configured, ICU-provided locales can be used
with most but not all server-side encodings.
표 23.1은 PostgreSQL에서 사용할 수 있는 문자 집합을 보여준다.
표 23.1. PostgreSQL 문자 집합
이름 | 설명 | 언어 | 서버? | 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 | National Standard | 중국어 | 아니요 | 아니요 | 1–4 | |
GBK | Extended National Standard | 중국어 간체 | 아니요 | 아니요 | 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 | 예 | 예 | 1 | ISO885915 |
LATIN10 | ISO 8859-16, ASRO SR 14111 | 루마니아어 | 예 | 아니요 | 1 | ISO885916 |
MULE_INTERNAL | Mule 내부 코드 | Multilingual Emacs | 예 | 아니요 | 1–4 | |
SJIS | Shift JIS | 일본어 | 아니요 | 아니요 | 1–2 | Mskanji , ShiftJIS , WIN932 , Windows932 |
SHIFT_JIS_2004 | Shift JIS, JIS X 0213 | 일본어 | 아니요 | 아니요 | 1–2 | |
SQL_ASCII | 미지정 (텍스트 참조) | 아무거나 | 예 | 아니요 | 1 | |
UHC | Unified Hangul Code | 한국어 | 아니요 | 아니요 | 1–2 | WIN949 , Windows949 |
UTF8 | 유니코드, 8비트 | 모두 | 예 | 예 | 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가 나열된 모든 문자 집합을 지원하는 것은 아니다.
예를 들면, PostgreSQL JDBC 드라이버는 MULE_INTERNAL
및 LATIN6
, LATIN8
, LATIN10
을 지원하지 않는다.
SQL_ASCII
설정은 다른 설정과 상당히 다르게 동작한다.
서버 문자 집합이 SQL_ASCII
인 경우 서버는 ASCII 표준에 따라 바이트 값 0–127을 해석하고,
바이트 값 128–255은 해석 불가 문자로 처리한다.
설정이 SQL_ASCII
인 경우 인코딩 변환이 완료되지 않는다.
따라서 이 설정은 사용 중인 특정 인코딩에 대한 선언이라기 보다는 인코딩에 대한 무시 선언이다.
대부분의 경우에, ASCII가 아닌 데이터를 사용하는 경우 PostgreSQL은 비 ASCII 문자를 변환하거나
검증할 수 없기 때문에 SQL_ASCII
설정을 사용하는 것은 현명하지 않다.
initdb
는 PostgreSQL 클러스터에 대한 기본 문자 집합(인코딩)을 정의한다.
예를 들면,
initdb -E EUC_JP
이것은 기본 문자 집합을 EUC_JP
(Extended Unix Code for Japanese)로 설정한다.
옵션 string이 긴 것을 선호하는 경우 --encoding
을 -E
대신 사용할 수 있다.
-E
또는 --encoding
옵션을 지정하지 않으면 initdb
는 지정되었거나 기본 로케일(locale)을 기반으로 사용할 적정 인코딩을 결정하려고 한다.
인코딩이 선택한 로케일(locale)과 호환되는 경우 사용자는 기본값이 아닌 인코딩을 데이터베이스 생성 시에 지정할 수 있다.
createdb -E EUC_KR -T template0 --lc-collate=ko_KR.euckr --lc-ctype=ko_KR.euckr korean
이것은 문자 집합 EUC_KR
및 로케일(locale) ko_KR
을 사용하는 korean
이라는 데이터베이스를 생성한다.
다른 방법으로 아래와 같은 SQL 명령을 사용할 수 있다.
CREATE DATABASE korean WITH ENCODING 'EUC_KR' LC_COLLATE='ko_KR.euckr' LC_CTYPE='ko_KR.euckr' TEMPLATE=template0;
위의 명령은 template0
데이터베이스 복사를 지정한다는 점에 유의하라.
다른 데이터베이스를 복사할 때 데이터 손상의 우려 때문에 원본 데이터베이스로부터 인코딩과 로케일(locale) 설정은 변경할 수 없다.
자세한 내용은 22.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)
대부분의 최신 운영 체제에서 PostgreSQL은 LC_CTYPE
설정에 의해 어떤 문자 집합이 암시되는지를 판단하며,
강제로 일치되는 데이터베이스 인코딩만 사용되도록 한다.
예전 시스템에서는 선택한 로케일(locale)에서 예상되는 올바른 인코딩을 사용하는 것이 사용자의 책임이었다.
여기서 실수를 했을 경우 정렬 같이 로케일(locale)에 의존적인 작업은 이상하게 동작한다.
PostgreSQL은 LC_CTYPE
이 C
또는 POSIX
가 아니더라도 수퍼유저가 SQL_ASCII
인코딩을 사용하여
데이터베이스를 생성하는 것을 가능하게 한다.
위에서 명시한 대로, SQL_ASCII는 데이터베이스에 저장된 데이터가 특정한 인코딩을 강제로 갖게 하지 않으므로
SQL_ASCII
을 선택하면 로케일(locale)에 의존적인 동작은 잘못될 가능성이 있다.
이러한 설정 조합은 사용할 수 없으며 언젠가는 전면적으로 금지될 수 있다.
PostgreSQL은 서버와 클라이언트 간 특정 문자 집합 조합에 대해 자동 문자 집합 변환을 지원한다. (23.3.4절 참조)
자동 문자 집합 변환을 활성화하려면 클라이언트에서 사용하려는 문자 집합(인코딩)을 PostgreSQL에 알려 주어야 한다. 이렇게 하는 방법에는 몇 가지가 있다.
psql에서 \encoding
명령 사용.
\encoding
을 사용하면 클라이언트 인코딩을 그때그때 변경할 수 있다.
예를 들면, 인코딩을 SJIS
로 변경하려면 다음을 입력한다.
\encoding SJIS
libpq(33.10절)에는 클라이언트 인코딩을 제어하는 기능이 있다.
SET client_encoding TO
사용.
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 데이터를 사용하지 않을 때는 SQL_ASCII
는 바람직하지 않다.
PostgreSQL은
pg_conversion
시스템 카탈로그 테이블 안에 정의된 변환 함수를 이용해서
두 문자 집합 간 변환을 할 수 있다.
PostgreSQL은
표 23.2 표에서
처럼 미리 정의된 변환을 사용할 수 있으며,
보다 자세한 설명은 표 23.3
표에서 설명한다. 또한 사용자 정의 변환 규칙도
만들수 있는데, 이는 CREATE CONVERSION
SQL 명령으로 할 수 있다. (클라이언트/서버간 자동
문자 집합 변환도 가능한데, 이 때는 그 변환에
“default” 옵션을 지정해야 한다.)
표 23.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 | not supported as a server encoding |
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
|
표 23.3. 모든 내장 문자 집합 변환
변환 이름 [a] | 입력 인코딩 | 출력 인코딩 |
---|---|---|
big5_to_euc_tw | BIG5 | EUC_TW |
big5_to_mic | BIG5 | MULE_INTERNAL |
big5_to_utf8 | BIG5 | UTF8 |
euc_cn_to_mic | EUC_CN | MULE_INTERNAL |
euc_cn_to_utf8 | EUC_CN | UTF8 |
euc_jp_to_mic | EUC_JP | MULE_INTERNAL |
euc_jp_to_sjis | EUC_JP | SJIS |
euc_jp_to_utf8 | EUC_JP | UTF8 |
euc_kr_to_mic | EUC_KR | MULE_INTERNAL |
euc_kr_to_utf8 | EUC_KR | UTF8 |
euc_tw_to_big5 | EUC_TW | BIG5 |
euc_tw_to_mic | EUC_TW | MULE_INTERNAL |
euc_tw_to_utf8 | EUC_TW | UTF8 |
gb18030_to_utf8 | GB18030 | UTF8 |
gbk_to_utf8 | GBK | UTF8 |
iso_8859_10_to_utf8 | LATIN6 | UTF8 |
iso_8859_13_to_utf8 | LATIN7 | UTF8 |
iso_8859_14_to_utf8 | LATIN8 | UTF8 |
iso_8859_15_to_utf8 | LATIN9 | UTF8 |
iso_8859_16_to_utf8 | LATIN10 | UTF8 |
iso_8859_1_to_mic | LATIN1 | MULE_INTERNAL |
iso_8859_1_to_utf8 | LATIN1 | UTF8 |
iso_8859_2_to_mic | LATIN2 | MULE_INTERNAL |
iso_8859_2_to_utf8 | LATIN2 | UTF8 |
iso_8859_2_to_windows_1250 | LATIN2 | WIN1250 |
iso_8859_3_to_mic | LATIN3 | MULE_INTERNAL |
iso_8859_3_to_utf8 | LATIN3 | UTF8 |
iso_8859_4_to_mic | LATIN4 | MULE_INTERNAL |
iso_8859_4_to_utf8 | LATIN4 | UTF8 |
iso_8859_5_to_koi8_r | ISO_8859_5 | KOI8R |
iso_8859_5_to_mic | ISO_8859_5 | MULE_INTERNAL |
iso_8859_5_to_utf8 | ISO_8859_5 | UTF8 |
iso_8859_5_to_windows_1251 | ISO_8859_5 | WIN1251 |
iso_8859_5_to_windows_866 | ISO_8859_5 | WIN866 |
iso_8859_6_to_utf8 | ISO_8859_6 | UTF8 |
iso_8859_7_to_utf8 | ISO_8859_7 | UTF8 |
iso_8859_8_to_utf8 | ISO_8859_8 | UTF8 |
iso_8859_9_to_utf8 | LATIN5 | UTF8 |
johab_to_utf8 | JOHAB | UTF8 |
koi8_r_to_iso_8859_5 | KOI8R | ISO_8859_5 |
koi8_r_to_mic | KOI8R | MULE_INTERNAL |
koi8_r_to_utf8 | KOI8R | UTF8 |
koi8_r_to_windows_1251 | KOI8R | WIN1251 |
koi8_r_to_windows_866 | KOI8R | WIN866 |
koi8_u_to_utf8 | KOI8U | UTF8 |
mic_to_big5 | MULE_INTERNAL | BIG5 |
mic_to_euc_cn | MULE_INTERNAL | EUC_CN |
mic_to_euc_jp | MULE_INTERNAL | EUC_JP |
mic_to_euc_kr | MULE_INTERNAL | EUC_KR |
mic_to_euc_tw | MULE_INTERNAL | EUC_TW |
mic_to_iso_8859_1 | MULE_INTERNAL | LATIN1 |
mic_to_iso_8859_2 | MULE_INTERNAL | LATIN2 |
mic_to_iso_8859_3 | MULE_INTERNAL | LATIN3 |
mic_to_iso_8859_4 | MULE_INTERNAL | LATIN4 |
mic_to_iso_8859_5 | MULE_INTERNAL | ISO_8859_5 |
mic_to_koi8_r | MULE_INTERNAL | KOI8R |
mic_to_sjis | MULE_INTERNAL | SJIS |
mic_to_windows_1250 | MULE_INTERNAL | WIN1250 |
mic_to_windows_1251 | MULE_INTERNAL | WIN1251 |
mic_to_windows_866 | MULE_INTERNAL | WIN866 |
sjis_to_euc_jp | SJIS | EUC_JP |
sjis_to_mic | SJIS | MULE_INTERNAL |
sjis_to_utf8 | SJIS | UTF8 |
windows_1258_to_utf8 | WIN1258 | UTF8 |
uhc_to_utf8 | UHC | UTF8 |
utf8_to_big5 | UTF8 | BIG5 |
utf8_to_euc_cn | UTF8 | EUC_CN |
utf8_to_euc_jp | UTF8 | EUC_JP |
utf8_to_euc_kr | UTF8 | EUC_KR |
utf8_to_euc_tw | UTF8 | EUC_TW |
utf8_to_gb18030 | UTF8 | GB18030 |
utf8_to_gbk | UTF8 | GBK |
utf8_to_iso_8859_1 | UTF8 | LATIN1 |
utf8_to_iso_8859_10 | UTF8 | LATIN6 |
utf8_to_iso_8859_13 | UTF8 | LATIN7 |
utf8_to_iso_8859_14 | UTF8 | LATIN8 |
utf8_to_iso_8859_15 | UTF8 | LATIN9 |
utf8_to_iso_8859_16 | UTF8 | LATIN10 |
utf8_to_iso_8859_2 | UTF8 | LATIN2 |
utf8_to_iso_8859_3 | UTF8 | LATIN3 |
utf8_to_iso_8859_4 | UTF8 | LATIN4 |
utf8_to_iso_8859_5 | UTF8 | ISO_8859_5 |
utf8_to_iso_8859_6 | UTF8 | ISO_8859_6 |
utf8_to_iso_8859_7 | UTF8 | ISO_8859_7 |
utf8_to_iso_8859_8 | UTF8 | ISO_8859_8 |
utf8_to_iso_8859_9 | UTF8 | LATIN5 |
utf8_to_johab | UTF8 | JOHAB |
utf8_to_koi8_r | UTF8 | KOI8R |
utf8_to_koi8_u | UTF8 | KOI8U |
utf8_to_sjis | UTF8 | SJIS |
utf8_to_windows_1258 | UTF8 | WIN1258 |
utf8_to_uhc | UTF8 | UHC |
utf8_to_windows_1250 | UTF8 | WIN1250 |
utf8_to_windows_1251 | UTF8 | WIN1251 |
utf8_to_windows_1252 | UTF8 | WIN1252 |
utf8_to_windows_1253 | UTF8 | WIN1253 |
utf8_to_windows_1254 | UTF8 | WIN1254 |
utf8_to_windows_1255 | UTF8 | WIN1255 |
utf8_to_windows_1256 | UTF8 | WIN1256 |
utf8_to_windows_1257 | UTF8 | WIN1257 |
utf8_to_windows_866 | UTF8 | WIN866 |
utf8_to_windows_874 | UTF8 | WIN874 |
windows_1250_to_iso_8859_2 | WIN1250 | LATIN2 |
windows_1250_to_mic | WIN1250 | MULE_INTERNAL |
windows_1250_to_utf8 | WIN1250 | UTF8 |
windows_1251_to_iso_8859_5 | WIN1251 | ISO_8859_5 |
windows_1251_to_koi8_r | WIN1251 | KOI8R |
windows_1251_to_mic | WIN1251 | MULE_INTERNAL |
windows_1251_to_utf8 | WIN1251 | UTF8 |
windows_1251_to_windows_866 | WIN1251 | WIN866 |
windows_1252_to_utf8 | WIN1252 | UTF8 |
windows_1256_to_utf8 | WIN1256 | UTF8 |
windows_866_to_iso_8859_5 | WIN866 | ISO_8859_5 |
windows_866_to_koi8_r | WIN866 | KOI8R |
windows_866_to_mic | WIN866 | MULE_INTERNAL |
windows_866_to_utf8 | WIN866 | UTF8 |
windows_866_to_windows_1251 | WIN866 | WIN |
windows_874_to_utf8 | WIN874 | UTF8 |
euc_jis_2004_to_utf8 | EUC_JIS_2004 | UTF8 |
utf8_to_euc_jis_2004 | UTF8 | EUC_JIS_2004 |
shift_jis_2004_to_utf8 | SHIFT_JIS_2004 | UTF8 |
utf8_to_shift_jis_2004 | UTF8 | SHIFT_JIS_2004 |
euc_jis_2004_to_shift_jis_2004 | EUC_JIS_2004 | SHIFT_JIS_2004 |
shift_jis_2004_to_euc_jis_2004 | SHIFT_JIS_2004 | EUC_JIS_2004 |
이 소스는 다양한 인코딩 시스템을 배우는 데 도움이 된다.
EUC_JP
,
EUC_CN
, EUC_KR
,
EUC_TW
에 대한 자세한 설명이 나와 있다.
유니코드 컨소시엄 웹사이트.
UTF-8 (8-bit UCS/Unicode Transformation Format)가 여기에 정의되어 있다.