캐릭터가 지원을 설정하는윈 토토텍스트를 a에 저장할 수 있습니다 단일 바이트 문자 윈 토토를 포함한 다양한 문자 윈 토토 ISO 8859 시리즈 및 다중 바이트 문자 윈 토토와 같은 처럼euc(확장 유닉스 코드), 유니 코드 및 뮬 내부 코드. 모든 문자 윈 토토를 사용할 수 있습니다 서버 전체에 투명하게. (확장자를 사용하는 경우 다른 출처의 기능은 그들이 쓴지 여부에 따라 다릅니다. 그들의 코드가 올바르게.) 기본 문자 윈 토토가 선택됩니다 초기화하는 동안윈 토토데이터베이스 클러스터 사용initdb. a를 만들 때 무시할 수 있습니다 사용 사용 데이터베이스createb또는 사용하여 SQL 명령데이터베이스 생성. 그래서 당신은 할 수 있습니다 문자 윈 토토가 다른 여러 데이터베이스가 있습니다.
표 20-1쇼 서버에서 사용할 수있는 문자 윈 토토.
표 20-1. 서버 문자 윈 토토
이름 | 설명 |
---|---|
SQL_ASCII | ASCII |
EUC_JP | 일본어EUC |
euc_cn | 중국어EUC |
EUC_KR | 한국어EUC |
Johab | 한국어EUC(Hangle Base) |
EUC_TW | 대만euc |
유니 코드 | 유니 코드 (UTF-8) |
mule_internal | 뮬 내부 코드 |
latin1 | ISO 8859-1/ecma94 (라틴 알파벳 No.1) |
latin2 | ISO 8859-2/ecma94 (라틴 알파벳 No.2) |
latin3 | ISO 8859-3/ECMA94 (라틴 알파벳 No.3) |
latin4 | ISO 8859-4/ecma94 (라틴 알파벳 No.4) |
latin5 | ISO 8859-9/ECMA128 (라틴 알파벳 No.5) |
latin6 | ISO 8859-10/ecma144 (라틴 알파벳 No.6) |
latin7 | ISO 8859-13 (라틴 알파벳 No.7) |
latin8 | ISO 8859-14 (라틴 알파벳 No.8) |
latin9 | ISO 8859-15 (라틴 알파벳 No.9) |
latin10 | ISO 8859-16/asroSR 14111 (라틴 알파벳 No.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 | Koi8-r (u) |
WIN | Windows CP1251 |
alt | Windows CP866 |
Win1256 | Windows CP1256 (아랍어) |
TCVN | TCVN-5712/Windows CP1258 (베트남 사람) |
Win874 | Windows CP874 (Thai) |
중요 :전윈 토토 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(일본어의 확장 유닉스 코드). 너 사용할 수 있습니다-encoding대신-e더 긴 옵션을 입력하는 것을 선호하는 경우 문자열. 그렇지 않은 경우-e또는-encoding옵션이 제공됩니다,SQL_ASCII사용됩니다.
다른 문자가있는 데이터베이스를 만들 수 있습니다 윈 토토:
createb -e euc_kr Korean
이것은 이름이 지정된 데이터베이스를 생성합니다한국어문자 윈 토토를 사용하는EUC_KR. 이것을 달성하는 또 다른 방법은 사용하는 것입니다 이 SQL 명령 :
'euc_kr'인코딩으로 데이터베이스 한국어 생성;
데이터베이스 인코딩은 시스템 카탈로그에 저장됩니다pg_database. 사용하여 볼 수 있습니다 그만큼-l옵션 또는\ l명령PSQL.
$PSQL -L데이터베이스 목록 데이터베이스 | 소유자 | 부호화 --------------+---------+------------------- euc_cn | t-isii | EUC_CN euc_jp | t-isii | EUC_JP euc_kr | t-isii | EUC_KR euc_tw | t-isii | EUC_TW mule_internal | t-isii | mule_internal 회귀 | t-isii | SQL_ASCII 템플릿 1 | t-isii | EUC_JP 테스트 | t-isii | EUC_JP 유니 코드 | t-isii | 유니 코드 (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 |
Johab | Johab, 유니 코드 |
EUC_TW | euc_tw, big5, 유니 코드, mule_internal |
latin1 | 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, WIN, 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, Johab, EUC_CN, GBK, EUC_TW, big5, latin1tolatin10, ISO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8, WIN, alt, KOI8, Win1256, TCVN, Win874, GB18030, Win1250 |
mule_internal | EUC_JP, SJIS, EUC_KR, EUC_CN, EUC_TW, big5, latin1tolatin5, WIN, alt, Win1250, big5, ISO_8859_5, KOI8 |
KOI8 | ISO_8859_5, WIN, alt, KOI8, 유니 코드, mule_internal |
WIN | ISO_8859_5, WIN, alt, KOI8, 유니 코드, mule_internal |
alt | ISO_8859_5, WIN, alt, KOI8, 유니 코드, mule_internal |
Win1256 | Win1256, 유니 코드 |
TCVN | TCVN, 유니 코드 |
Win874 | Win874, 유니 코드 |
자동 문자 윈 토토 변환을 활성화하려면 말하려면윈 토토클라이언트에서 사용하려는 문자 윈 토토 (인코딩). 이것을 달성하는 몇 가지 방법이 있습니다 :
사용\ encoding명령PSQL. \ encoding클라이언트를 변경할 수 있습니다 즉석에서 인코딩. 예를 들어 인코딩을로 변경하려면SJIS, 유형 :
\ sjis 인코딩
사용libpq기능.\ encoding실제로 호출pqsetclientencoding ()
그 용
목적.
int pqsetclientencoding (pgconn *conn, const char *인코딩);
여기서connis 서버 연결 및인코딩원하는 인코딩입니다 사용. 함수가 인코딩을 성공적으로 설정하면 IT를 설정합니다 반환 0, 그렇지 않으면 -1. 이것에 대한 현재 인코딩 연결을 사용하여 연결을 결정할 수 있습니다.
int pqclientencoding (const pgconn *conn);
기호가 아닌 인코딩 ID를 반환합니다. 와 같은 문자열EUC_JP. 변환합니다 인코딩 ID로 인코딩 이름으로 사용할 수 있습니다.
char *pg_encoding_to_char (intencoding_id);
사용client_encoding set. 이 SQL로 클라이언트 인코딩 설정을 수행 할 수 있습니다. 명령:
set client_encoding set 'value';
또한보다 표준 SQL 구문을 사용할 수 있습니다이름 설정이 목적은 :
이름 설정 'value';
현재 클라이언트 인코딩을 쿼리하려면 :
show client_encoding;
기본 인코딩으로 돌아 가기 :
Reset Client_Encoding;
사용pgclientencoding. 만약에 환경 변수pgclientencoding는 클라이언트에 정의되어 있습니다 환경, 해당 클라이언트 인코딩이 자동으로 선택됩니다 서버에 대한 연결이 이루어질 때. (이것은 할 수 있습니다 결과적으로 다른 방법을 사용하여 재정의됩니다 위에서 언급했습니다.)
구성 변수 사용client_encoding. 인 경우client_encoding변수윈 토토.conf해당 클라이언트가 설정되어 있습니다 인코딩은 연결할 때 자동으로 선택됩니다 서버가 만들어졌습니다. (이후에는 사용을 상환 할 수 있습니다 위에서 언급 한 다른 방법 중 하나입니다.)
특정 문자의 변환이 불가능한 경우 - 선택했다고 가정 해EUC_JP서버 및latin1클라이언트의 경우 일부 일본인 캐릭터는로 변환 할 수 없습니다.latin1- 그것은 16 진수로 변환됩니다 괄호 안의 바이트 값 (예 :(826C).
이것은 다양한 종류에 대해 배우기 시작하기에 좋은 출처입니다. 인코딩 시스템의.
자세한 설명EUC_JP, EUC_CN, EUC_KR, EUC_TW섹션 3.2에 나타납니다.
유니 코드 컨소시엄의 웹 사이트
UTF-8이 정의됩니다 여기.