문자 집합 지원PostgreSQL텍스트를 저장할 수 있습니다. 단일 바이트 스포츠 토토 세트를 포함한 다양한 스포츠 토토 세트 ISO 8859 시리즈와 같은 다중 바이트 스포츠 토토 집합 와 같이EUC(확장 유닉스 코드), utf-8 및 Mule 내부 코드. 지원되는 모든 문자 집합은 클라이언트가 투명하게 사용할 수 있지만 일부는 지원되지 않습니다. 서버 내에서 사용합니다(즉, 서버측 인코딩으로). 는 초기화하는 동안 기본 문자 집합이 선택되었습니다.포스트그레SQL데이터베이스 클러스터 사용 중initdb. 다음과 같은 경우 재정의될 수 있습니다. 데이터베이스를 생성하면 각각 여러 개의 데이터베이스를 가질 수 있습니다. 다른 문자 집합을 사용합니다.
표 21-1쇼 사용할 수 있는 스포츠 토토 집합포스트그레SQL.
표 21-1.PostgreSQL스포츠 토토 세트
| 이름 | 설명 | 언어 | 서버? | 바이트/스포츠 토토 | 별칭 |
|---|---|---|---|---|---|
| 빅5 | 빅 파이브 | 중국어(번체) | 아니요 | 1-2 | WIN950, Windows950 |
| EUC_CN | 확장 UNIX 코드-CN | 중국어 간체 | 예 | 1-3 | |
| EUC_JP | 확장 UNIX 코드-JP | 일본어 | 예 | 1-3 | |
| EUC_KR | 확장 UNIX 코드-KR | 한국어 | 예 | 1-3 | |
| EUC_TW | 확장 UNIX 코드-TW | 중국어(번체), 대만어 | 예 | 1-3 | |
| GB18030 | 국가 표준 | 중국어 | 아니요 | 1-2 | |
| 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 | |
| 조하브 | 조하브 | 한국어(한글) | 예 | 1-3 | |
| KOI8 | 코이8-R(U) | 키릴 스포츠 토토 | 예 | 1 | KOI8R |
| 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,ASROSR 14111 | 루마니아어 | 예 | 1 | ISO885916 |
| MULE_INTERNAL | Mule 내부 코드 | 다국어 Emacs | 예 | 1-4 | |
| SJIS | 시프트 JIS | 일본어 | 아니요 | 1-2 | 므스칸지, ShiftJIS, WIN932, Windows932 |
| SQL_ASCII | 지정되지 않음(텍스트 참조) | 아무거나 | 예 | 1 | |
| UHC | 통일한글코드 | 한국어 | 아니요 | 1-2 | WIN949, Windows949 |
| UTF8 | 유니코드, 8비트 | 전체 | 예 | 1-4 | 유니코드 |
| WIN866 | 윈도우 CP866 | 키릴 스포츠 토토 | 예 | 1 | ALT |
| WIN874 | 윈도우 CP874 | 태국어 | 예 | 1 | |
| WIN1250 | 윈도우 CP1250 | 중앙 유럽 | 예 | 1 | |
| WIN1251 | 윈도우 CP1251 | 키릴 스포츠 토토 | 예 | 1 | 승리 |
| WIN1252 | 윈도우 CP1252 | 서유럽어 | 예 | 1 | |
| WIN1256 | 윈도우 CP1256 | 아랍어 | 예 | 1 | |
| WIN1258 | 윈도우 CP1258 | 베트남어 | 예 | 1 | ABC, TCVN, TCVN5712, VSCII |
모두는 아님APIs는 모두 지원합니다 나열된 스포츠 토토 세트. 예를 들어,PostgreSQLJDBC 드라이버는 지원하지 않습니다.MULE_INTERNAL, LATIN6, LATIN8및LATIN10.
그SQL_ASCII설정이 작동함 다른 설정과는 상당히 다릅니다. 때 서버 스포츠 토토 집합은SQL_ASCII, 서버는 ASCII에 따라 바이트 값 0-127을 해석합니다. 표준이며 바이트 값 128-255는 해석되지 않은 것으로 간주됩니다. 문자. 인코딩 변환은 다음과 같은 경우 수행되지 않습니다. 설정은SQL_ASCII. 따라서 이 설정은 특정 인코딩을 선언하는 것이 아닙니다. 인코딩에 대한 무지를 선언하는 것으로 사용 중입니다. 에서 대부분의 경우 ASCII가 아닌 데이터로 작업하는 경우 를 사용하는 것은 현명하지 못하다.SQL_ASCII설정, 왜냐하면PostgreSQL될 것이다 비ASCII로 변환하거나 유효성을 검사하는 데 도움을 드릴 수 없습니다. 스포츠 토토.
initdb기본값을 정의합니다. a에 대한 스포츠 토토 집합PostgreSQL클러스터. 예를 들어,
initdb -E EUC_JP
기본 문자 집합(인코딩)을 다음으로 설정합니다.EUC_JP(일본어용 확장 Unix 코드). 당신 사용할 수 있습니다--인코딩대신에-E더 긴 옵션을 입력하려는 경우 스포츠 토토열. 그렇지 않은 경우-E또는--인코딩옵션이 주어졌습니다.initdb적절한 결정을 시도합니다. 지정된 또는 기본 로케일을 기반으로 사용할 인코딩입니다.
다른 스포츠 토토로 데이터베이스를 생성할 수 있습니다 설정:
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 포스트그레스 | 티이시이 | EUC_JP 회귀 | 티이시이 | SQL_ASCII 템플릿1 | 티이시이 | EUC_JP 테스트 | 티이시이 | EUC_JP UTF8 | 티이시이 | UTF8 (9행)
중요:인코딩을 지정할 수 있지만 데이터베이스를 원할 경우 인코딩을 선택하는 것은 현명하지 않습니다. 그것은 당신이 가지고 있는 로케일에서 기대하는 것이 아닙니다. 선택되었습니다.LC_COLLATE그리고LC_CTYPE설정은 다음을 의미합니다. 특정 인코딩 및 로케일 종속 작업(예: 정렬)에 있는 데이터를 잘못 해석할 가능성이 높습니다. 인코딩이 호환되지 않습니다.
이 로케일 설정은 다음에 의해 고정되었기 때문에initdb, 사용하기 위한 명백한 유연성 클러스터의 서로 다른 데이터베이스의 서로 다른 인코딩은 실제보다 이론에 가깝습니다. 아마도 이러한 메커니즘은 향후 버전에서 다시 검토될 예정입니다.PostgreSQL.
여러 인코딩을 안전하게 사용하는 한 가지 방법은 로케일C또는POSIX중initdb, 따라서 실제 로케일을 비활성화합니다. 인식.
PostgreSQL지원하다 서버와 클라이언트 간의 자동 문자 집합 변환 특정 스포츠 토토 세트 조합의 경우. 전환 정보는에 저장됩니다.pg_conversion시스템 카탈로그.PostgreSQL미리 정의된 일부 기능이 함께 제공됩니다. 다음과 같이 전환이 발생합니다.표 21-2. SQL 명령을 사용하여 새 변환을 생성할 수 있습니다.전환 생성.
표 21-2. 클라이언트/서버 문자 집합 전환
| 서버 스포츠 토토 세트 | 사용 가능한 클라이언트 스포츠 토토 세트 |
|---|---|
| 빅5 | 다음으로 지원되지 않음 서버 인코딩 |
| EUC_CN | EUC_CN, MULE_INTERNAL, UTF8 |
| EUC_JP | EUC_JP, MULE_INTERNAL, SJIS, UTF8 |
| EUC_KR | EUC_KR, MULE_INTERNAL, UTF8 |
| EUC_TW | EUC_TW, 빅5, MULE_INTERNAL, UTF8 |
| GB18030 | 지원되지 않음 서버 인코딩 |
| GBK | 다음으로 지원되지 않음 서버 인코딩 |
| ISO_8859_5 | ISO_8859_5, KOI8, 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 |
| 조하브 | 조하브, UTF8 |
| KOI8 | KOI8, ISO_8859_5, MULE_INTERNAL, UTF8, WIN866, WIN1251 |
| 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, 빅5, EUC_CN, EUC_JP, EUC_KR, EUC_TW, ISO_8859_5, KOI8, 라틴어1에LATIN4, SJIS, WIN866, WIN1250, WIN1251 |
| SJIS | 지원되지 않음 서버 인코딩 |
| SQL_ASCII | 모두(아니요 변환이 수행됩니다) |
| UHC | 다음으로 지원되지 않음 서버 인코딩 |
| UTF8 | 모두 지원됨 인코딩 |
| WIN866 | WIN866, ISO_8859_5, KOI8, MULE_INTERNAL, UTF8, WIN1251 |
| WIN874 | WIN874, UTF8 |
| WIN1250 | WIN1250, LATIN2, MULE_INTERNAL, UTF8 |
| WIN1251 | WIN1251, ISO_8859_5, KOI8, MULE_INTERNAL, UTF8, WIN866 |
| WIN1252 | WIN1252, UTF8 |
| WIN1256 | WIN1256, UTF8 |
| WIN1258 | WIN1258, UTF8 |
자동 문자 집합 변환을 활성화하려면 다음을 수행해야 합니다. 말하다PostgreSQL캐릭터 클라이언트에서 사용하려는 설정(인코딩)입니다. 있다 이를 달성하는 몇 가지 방법:
다음을 사용하여\인코딩명령 입력psql. \인코딩클라이언트를 변경할 수 있습니다 즉시 인코딩. 예를 들어 인코딩을 다음으로 변경하려면SJIS, 유형:
\SJIS 인코딩
사용 중libpq함수.\인코딩실제로 전화함PQsetClientEncodi스포츠 토토()그것 때문에
목적.
int PQsetClientEncodi스포츠 토토(PGconn *콘, const char *인코딩);
어디에서콘은 서버에 연결 및인코딩원하는 인코딩입니다 사용. 함수가 인코딩을 성공적으로 설정하면 0을 반환하고 그렇지 않으면 -1을 반환합니다. 현재 인코딩 다음을 사용하여 연결을 결정할 수 있습니다.
int PQclientEncodi스포츠 토토(const PGconn *콘);
기호 ID가 아닌 인코딩 ID를 반환한다는 점에 유의하세요. 다음과 같은 문자열EUC_JP. 변환하려면 인코딩 ID를 인코딩 이름으로 지정하려면 다음을 사용할 수 있습니다.
char *pg_encodi스포츠 토토_to_char(intencodi스포츠 토토_id);
사용 중클라이언트 인코딩을 다음으로 설정. 클라이언트 인코딩 설정은 이 SQL을 사용하여 수행할 수 있습니다. 명령:
클라이언트_인코딩을 '로 설정값';
또한 표준 SQL 구문을 사용할 수 있습니다.이름 설정이 목적을 위해:
이름 설정 '값';
현재 클라이언트 인코딩을 쿼리하려면:
클라이언트_인코딩 표시;
기본 인코딩으로 돌아가려면:
클라이언트 인코딩 재설정;
사용 중PGCLIENTENCODI스포츠 토토. 만약 환경 변수PGCLIENTENCODI스포츠 토토클라이언트의 환경에서는 해당 클라이언트 인코딩이 자동으로 선택됩니다. 서버에 연결되면. (이것은 이후에 다른 방법을 사용하여 재정의됩니다. 위에서 언급했습니다.)
구성 변수 사용client_encodi스포츠 토토. 만약클라이언트_인코딩변수는 설정하면 클라이언트 인코딩이 자동으로 선택됩니다. 서버에 연결이 이루어졌습니다. (이것은 이후에 가능합니다. 언급된 다른 방법 중 하나를 사용하여 재정의됨 위.)
특정 스포츠 토토의 변환이 불가능한 경우 — 당신이 선택했다고 가정 해 봅시다EUC_JP에 대한 서버 및라틴어1클라이언트의 경우 일부 일본어 문자에는 표현이 없습니다.라틴어1— 그렇다면 오류는 다음과 같습니다. 보고되었습니다.
클라이언트 문자 집합이 다음과 같이 정의된 경우SQL_ASCII, 인코딩 변환이 비활성화되었습니다. 서버의 문자 집합에 관계없이. 마찬가지로 서버, 사용SQL_ASCII현명하지 못하다 전체 ASCII 데이터로 작업하지 않는 한.
이것들은 다양한 종류에 대해 배우기 시작하는 좋은 자료입니다 인코딩 시스템의.
캐릭터에 관한 광범위한 문서 모음 세트, 인코딩 및 코드 페이지.
자세한 설명EUC_JP, EUC_CN, EUC_KR, EUC_TW섹션 3.2에 나타납니다.
유니코드 컨소시엄 웹사이트
UTF-8이 정의되었습니다. 여기.