문자 집합 지원윈 토토텍스트를 저장할 수 있습니다. 단일 바이트 윈 토토 세트를 포함한 다양한 윈 토토 세트 ISO 8859 시리즈와 같은 다중 바이트 윈 토토 집합 와 같이EUC(확장 유닉스 코드), 유니코드 및 Mule 내부 코드. 모든 윈 토토 세트를 사용할 수 있습니다. 서버 전체에서 투명하게. (확장 프로그램을 사용하는 경우 다른 소스의 함수는 그들이 작성했는지 여부에 따라 다릅니다. 코드가 정확합니다.) 기본 윈 토토 집합이 선택되었습니다. 초기화하는 동안윈 토토다음을 사용하는 데이터베이스 클러스터initdb. 생성할 때 재정의할 수 있습니다. 데이터베이스 사용생성된 DB또는 다음을 사용하여 SQL 명령데이터베이스 생성. 그래서 당신은 할 수 있습니다 각각 다른 윈 토토 집합을 가진 여러 데이터베이스가 있습니다.
표 20-1표시 서버에서 사용할 수 있는 윈 토토 집합입니다.
표 20-1. 서버 윈 토토 집합
| 이름 | 설명 |
|---|---|
| SQL_ASCII | ASCII |
| EUC_JP | 일본어EUC |
| EUC_CN | 중국어EUC |
| EUC_KR | 한국어EUC |
| 조하브 | 한국어EUC(행글 베이스) |
| EUC_TW | 대만EUC |
| 유니코드 | 유니코드 (UTF-8) |
| MULE_INTERNAL | Mule 내부 코드 |
| LATIN1 | ISO 8859-1/ECMA94 (라틴어 알파벳 1번) |
| LATIN2 | ISO 8859-2/ECMA94 (라틴어 알파벳 2번) |
| LATIN3 | ISO 8859-3/ECMA94 (라틴어 알파벳 3번) |
| LATIN4 | ISO 8859-4/ECMA94 (라틴어 알파벳 4번) |
| LATIN5 | ISO 8859-9/ECMA128 (라틴어 알파벳 5번) |
| LATIN6 | ISO 8859-10/ECMA144 (라틴어 알파벳 6번) |
| LATIN7 | ISO 8859-13 (라틴어 알파벳 no.7) |
| LATIN8 | ISO 8859-14 (라틴 알파벳 no.8) |
| LATIN9 | ISO 8859-15 (라틴어 알파벳 9번) |
| LATIN10 | ISO 8859-16/ASROSR 14111 (라틴어 알파벳 10번) |
| ISO_8859_5 | ISO 8859-5/ECMA113(라틴어/키릴 윈 토토) |
| ISO_8859_6 | ISO 8859-6/ECMA114(라틴어/아랍어) |
| ISO_8859_7 | ISO 8859-7/ECMA118(라틴어/그리스어) |
| ISO_8859_8 | ISO 8859-8/ECMA121(라틴어/히브리어) |
| KOI8 | 코이8-R(U) |
| 승리 | 윈도우 CP1251 |
| ALT | 윈도우 CP866 |
| WIN1256 | Windows CP1256(아랍어) |
| TCVN | TCVN-5712/윈도우 CP1258 (베트남어) |
| WIN874 | Windows CP874(태국어) |
중요:이전윈 토토 7.2, LATIN5잘못된 의미는 ISO 8859-5입니다. 7.2부터 에,LATIN5ISO 8859-9를 의미합니다. 만약에 당신은LATIN5데이터베이스가 생성되었습니다 7.1 이하 버전을 사용 중이고 7.2 이상으로 마이그레이션하려는 경우 이 변경에 주의해야 합니다.
모두는 아님APIs는 모두 지원합니다. 나열된 문자 세트. 예를 들어,윈 토토JDBC 드라이버는 지원하지 않습니다.MULE_INTERNAL, LATIN6, LATIN8및LATIN10.
initdb기본값을 정의합니다. a에 대한 윈 토토 집합윈 토토클러스터. 예를 들어,
initdb -E EUC_JP
기본 문자 집합(인코딩)을 다음으로 설정합니다.EUC_JP(일본어용 확장 Unix 코드). 당신 사용할 수 있습니다--인코딩대신-E더 긴 옵션을 입력하려는 경우 윈 토토열. 그렇지 않은 경우-E또는--인코딩옵션이 주어졌습니다.SQL_ASCII사용됩니다.
다른 윈 토토로 데이터베이스를 생성할 수 있습니다 설정:
createdb -E EUC_KR 한국어
이렇게 하면 다음 이름의 데이터베이스가 생성됩니다.한국어윈 토토 집합을 사용하는EUC_KR. 이를 달성하는 또 다른 방법은 다음을 사용하는 것입니다. 이 SQL 명령:
'EUC_KR'을 인코딩하여 한국어 데이터베이스 생성;
데이터베이스 인코딩은 시스템 카탈로그에 저장됩니다.pg_database. 당신은 그것을 사용하여 볼 수 있습니다-l옵션 또는\l명령psql.
$ psql -l데이터베이스 목록 데이터베이스 | 소유자 | 인코딩 ---------------+---------+--------------- euc_cn | 티이시이 | EUC_CN euc_jp | 티이시이 | EUC_JP euc_kr | 티이시이 | EUC_KR euc_tw | 티이시이 | EUC_TW 노새_내부 | 티이시이 | MULE_INTERNAL 회귀 | 티이시이 | SQL_ASCII 템플릿1 | 티이시이 | EUC_JP 테스트 | 티이시이 | EUC_JP 유니코드 | 티이시이 | 유니코드 (9행)
윈 토토지원 서버와 클라이언트 간의 자동 문자 집합 변환 특정 문자 세트의 경우. 변환정보는 에 저장됨pg_conversion시스템 카탈로그. SQL을 사용하여 새 변환을 생성할 수 있습니다. 명령전환 생성. 윈 토토일부 포함 사전 정의된 변환. 그들은 다음에 나열되어 있습니다.테이블 20-2.
표 20-2. 클라이언트/서버 윈 토토 집합 전환
| 서버 윈 토토 집합 | 사용 가능한 클라이언트 윈 토토 세트 |
|---|---|
| SQL_ASCII | SQL_ASCII, 유니코드, MULE_INTERNAL |
| EUC_JP | EUC_JP, SJIS, 유니코드, MULE_INTERNAL |
| EUC_CN | EUC_CN, 유니코드, MULE_INTERNAL |
| EUC_KR | EUC_KR, 유니코드, MULE_INTERNAL |
| 조하브 | 조하브, 유니코드 |
| EUC_TW | EUC_TW, 빅5, 유니코드, MULE_INTERNAL |
| 라틴어1 | LATIN1, 유니코드 MULE_INTERNAL |
| LATIN2 | LATIN2, WIN1250, 유니코드, MULE_INTERNAL |
| LATIN3 | LATIN3, 유니코드, MULE_INTERNAL |
| LATIN4 | LATIN4, 유니코드, MULE_INTERNAL |
| LATIN5 | LATIN5, 유니코드 |
| LATIN6 | LATIN6, 유니코드, MULE_INTERNAL |
| LATIN7 | LATIN7, 유니코드, MULE_INTERNAL |
| LATIN8 | LATIN8, 유니코드, MULE_INTERNAL |
| LATIN9 | LATIN9, 유니코드, MULE_INTERNAL |
| LATIN10 | LATIN10, 유니코드, MULE_INTERNAL |
| ISO_8859_5 | ISO_8859_5, 유니코드, MULE_INTERNAL, 승리, ALT, KOI8 |
| ISO_8859_6 | ISO_8859_6, 유니코드 |
| ISO_8859_7 | ISO_8859_7, 유니코드 |
| ISO_8859_8 | ISO_8859_8, 유니코드 |
| 유니코드 | EUC_JP, SJIS, EUC_KR, UHC, 조하브, EUC_CN, GBK, EUC_TW, 빅5, LATIN1에LATIN10, ISO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8, 승리, ALT, KOI8, WIN1256, TCVN, WIN874, GB18030, WIN1250 |
| MULE_INTERNAL | EUC_JP, SJIS, EUC_KR, EUC_CN, EUC_TW, 빅5, 라틴어1에LATIN5, 승리, ALT, WIN1250, 빅5, ISO_8859_5, KOI8 |
| KOI8 | ISO_8859_5, 승리, ALT, KOI8, 유니코드, MULE_INTERNAL |
| 승리 | ISO_8859_5, 승리, ALT, KOI8, 유니코드, MULE_INTERNAL |
| ALT | ISO_8859_5, 승리, ALT, KOI8, 유니코드, MULE_INTERNAL |
| WIN1256 | WIN1256, 유니코드 |
| TCVN | TCVN, 유니코드 |
| WIN874 | WIN874, 유니코드 |
자동 문자 집합 변환을 활성화하려면 다음을 수행해야 합니다. 말하다윈 토토클라이언트에서 사용하려는 윈 토토 집합(인코딩)입니다. 이를 수행하는 방법에는 여러 가지가 있습니다.
다음을 사용하여\인코딩명령 입력psql. \인코딩클라이언트를 변경할 수 있습니다 즉시 인코딩. 예를 들어 인코딩을 다음으로 변경하려면SJIS, 유형:
\인코딩 SJIS
사용 중libpq함수.\인코딩실제로 전화함PQsetClientEncoding()그것 때문에
목적.
int PQsetClientEncoding(PGconn *콘, const char *인코딩);
어디에서콘은 서버에 연결 및인코딩원하는 인코딩입니다 사용. 함수가 인코딩을 성공적으로 설정하면 0을 반환하고 그렇지 않으면 -1을 반환합니다. 현재 인코딩 다음을 사용하여 연결을 결정할 수 있습니다.
int PQclientEncoding(const PGconn *콘);
기호 ID가 아닌 인코딩 ID를 반환한다는 점에 유의하세요. 다음과 같은 문자열EUC_JP. 변환하려면 인코딩 ID를 인코딩 이름으로 지정하려면 다음을 사용할 수 있습니다.
char *pg_encoding_to_char(intencoding_id);
사용 중클라이언트 인코딩을 다음으로 설정. 클라이언트 인코딩 설정은 이 SQL을 사용하여 수행할 수 있습니다. 명령:
클라이언트_인코딩을 '로 설정값';
또한 보다 표준적인 SQL 구문을 사용할 수 있습니다.이름 설정이 목적을 위해:
이름 설정 '값';
현재 클라이언트 인코딩을 쿼리하려면:
클라이언트_인코딩 표시;
기본 인코딩으로 돌아가려면:
클라이언트_인코딩 재설정;
사용 중PGCLIENTENCODING. 만약에 환경 변수PGCLIENTENCODING클라이언트의 환경에서는 해당 클라이언트 인코딩이 자동으로 선택됩니다. 서버에 연결되면. (이것은 이후에 다른 방법을 사용하여 재정의됩니다. 위에서 언급했습니다.)
구성 변수 사용client_encoding. 만약client_encoding변수윈 토토.conf설정되어 있으며 해당 클라이언트는 인코딩은 연결 시 자동으로 선택됩니다. 서버가 만들어졌습니다. (이는 이후에 다음을 사용하여 재정의될 수 있습니다. 위에 언급된 다른 방법 중 하나를 선택하세요.)
특정 윈 토토의 변환이 불가능한 경우 -- 당신이 선택했다고 가정해 보세요.EUC_JP에 대한 서버 및라틴어1클라이언트의 경우 일부 일본어 문자는 다음으로 변환할 수 없습니다.LATIN1-- 16진수로 변환됩니다. 괄호 안의 바이트 값(예:(826C).
이것들은 다양한 종류에 대해 배우기 시작하는 좋은 자료입니다 인코딩 시스템의.
자세한 설명EUC_JP, EUC_CN, EUC_KR, EUC_TW섹션 3.2에 나타납니다.
유니코드 컨소시엄 웹사이트
UTF-8이 정의되었습니다. 여기.