저자 :Tatsuo Ishii (
<ishii@스포츠 토토 사이트.org
), 마지막 업데이트 된 2002-07-24. 확인하다Tatsuo 웹 사이트자세한 내용은
multibyte (MB) 지원은입니다 허용스포츠 토토 사이트to 와 같은 다중 바이트 문자 세트 처리euc(확장 유닉스 코드), 유니 코드 및 뮬 내부 코드. 와 함께MB활성화 일반 표현식으로 멀티 바이트 문자 세트를 사용할 수 있습니다 (regexp), 좋아요 및 기타 기능. 기본 인코딩 초기화하는 동안 시스템이 선택됩니다스포츠 토토 사이트설치 사용initdb. 이것은 재정의 될 수 있습니다 를 사용하여 데이터베이스를 만들 때createb또는 SQL 명령을 사용하여데이터베이스 생성. 그래서 당신은 가질 수 있습니다 인코딩 시스템이 다른 여러 데이터베이스. 메모 저것MB단일 바이트를 처리 할 수 있습니다 ISO-8859-1과 같은 문자 세트.
스포츠 토토 사이트 이후 기본적으로 멀티 바이트 지원이 활성화됩니다 버전 7.3.
다음 인코딩은 데이터베이스 인코딩으로 사용할 수 있습니다.
표 7-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-1ecma-94 라틴 알파벳 No.1 |
latin2 | ISO 8859-2ECMA-94 라틴 알파벳 No.2 |
latin3 | ISO 8859-3ecma-94 라틴 알파벳 No.3 |
latin4 | ISO 8859-4ECMA-94 라틴 알파벳 No.4 |
latin5 | ISO 8859-9ecma-128 라틴 알파벳 No.5 |
latin6 | ISO 8859-10ecma-144 라틴 알파벳 No.6 |
latin7 | ISO 8859-13 라틴 알파벳 No.7 |
latin8 | ISO 8859-14 라틴 알파벳 No.8 |
latin9 | ISO 8859-15 라틴 알파벳 No.9 |
latin10 | ISO 8859-16asroSR 14111 라틴 알파벳 No.10 |
ISO-8859-5 | ecma-113 라틴/키릴 |
ISO-8859-6 | ecma-114 라틴/아랍어 |
ISO-8859-7 | ecma-118 라틴/그리스어 |
ISO-8859-8 | ECMA-121 라틴어/히브리어 |
KOI8 | Koi8-R (U) |
WIN | Windows CP1251 |
alt | Windows CP866 |
Win1256 | 아랍어 Windows CP1256 |
TCVN | 베트남TCVN-5712 (Windows CP1258) |
Win874 | Thai 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(일본어의 확장 유닉스 코드). 사용할 수 있습니다-encoding
대신-e
더 긴 옵션 문자열을 입력하는 것을 선호하는 경우.
그렇지 않은 경우-e
또는-encoding
옵션이 제공되고 sql_ascii는입니다
사용된.
다른 인코딩으로 데이터베이스를 만들 수 있습니다.
$createb -e euc_kr Korean
이름이 지정된 데이터베이스를 생성합니다한국어withEUC_KR인코딩. 이것을 달성하는 또 다른 방법은 SQL을 사용하는 것입니다. 명령:
인코딩으로 데이터베이스 한국어 생성 = 'euc_kr';
데이터베이스의 인코딩은로 표시됩니다.인코딩 열inpg_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 | UNICODE (9 줄)
스포츠 토토 사이트서버와 클라이언트 간의 자동 인코딩 변환 일부 인코딩. 변환 정보는에 저장됩니다.PG_CONVERSION시스템 카탈로그. 당신은 a를 만들 수 있습니다 사용하여 새로운 변환생성 변환. 스포츠 토토 사이트에는 사전 정의 된 일부가 함께 제공됩니다 전환. 그들은에 나열되어 있습니다.표 7-2.
표 7-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 | 29222_29230, 유니 코드 |
자동 인코딩 번역을 활성화하려면해야합니다 말하다스포츠 토토 사이트인코딩 고객에게 사용하고 싶습니다. 몇 가지 방법이 있습니다 이것을 달성하십시오.
사용\ encoding명령에서PSQL. \ encoding클라이언트를 변경할 수 있습니다 즉석에서 인코딩. 예를 들어 인코딩을로 변경하려면SJIS, 유형 :
\ sjis 인코딩
사용libpq기능.\ encoding실제로 호출pqsetclientencoding ()
그 용
목적.
int pqsetclientencoding (pgconn *conn, const char *인코딩)
여기서connis 서버 연결 및인코딩는 원하는 인코딩입니다 사용. 인코딩을 성공적으로 설정하면 0을 반환합니다. 그렇지 않으면 -1. 이 연결을위한 현재 인코딩이 가능합니다 다음을 사용하여 표시됩니다.
int pqclientencoding (const pgconn *conn)
기호가 아닌 인코딩 ID를 반환합니다. 와 같은 문자열EUC_JP. 변환합니다 인코딩 ID로 인코딩 이름으로 사용할 수 있습니다.
char *pg_encoding_to_char(intencoding_id)
사용set client_encoding to. 이 SQL로 클라이언트 인코딩 설정을 수행 할 수 있습니다. 명령:
client_encoding set client_encoding 'encoding';
SQL92 구문을 사용할 수 있습니다이름 설정이 목적은 :
이름 설정 '인코딩';
현재 클라이언트 인코딩을 쿼리하려면 :
show client_encoding;
기본 인코딩으로 돌아 가기 :
Reset Client_Encoding;
사용pgclientencoding. 만약에 환경 변수pgclientencoding는 클라이언트에 정의되어 있습니다 환경, 해당 클라이언트 인코딩이 자동으로 선택됩니다 서버에 대한 연결이 이루어질 때. (이것은 할 수 있습니다 결과적으로 다른 방법을 사용하여 재정의됩니다 위에서 언급했습니다.)
client_encoding 변수 사용. 인 경우client_encoding
변수스포츠 토토 사이트.conf해당 클라이언트가 설정되어 있습니다
인코딩은 연결할 때 자동으로 선택됩니다
서버가 만들어졌습니다. (이후에는 사용을 상환 할 수 있습니다
위에서 언급 한 다른 방법 중 하나입니다.)
선택했다고 가정 해EUC_JP서버 및latin1클라이언트의 경우 일부 일본인 캐릭터는로 번역 할 수 없습니다.latin1. 이 경우, 할 수없는 편지 에 대표latin1문자 세트는 다음과 같이 변환됩니다.
(hexa decimal)
이것은 다양한 종류에 대해 배우기 시작하기에 좋은 출처입니다. 인코딩 시스템의.
자세한 설명EUC_JP, EUC_CN, EUC_KR, EUC_TW섹션 3.2에 나타납니다.
유니 코드 컨소시엄의 웹 사이트
UTF-8이 정의됩니다 여기.
2000 년 12 월 7 일
* An automatic encoding translation between Unicode and other
인코딩이 구현됩니다
* 위의 변경 사항은 7.1에 나타납니다
2000 년 5 월 20 일
* SJIS UDC (NEC 선택 IBM KANJI) 지원 기여
Eiji Tokuya에 의해
* 위의 변경 사항은 7.0.1에 나타납니다
2000 년 3 월 22 일
* 새로운 LIBPQ 함수 추가 PQSetClientEncoding, PQClientencoding을 추가하십시오
* ./configure-with-mb = euc_jp
이제 더 이상 사용되지 않았습니다. 사용
./configure-enable-multibyte = euc_jp
대신에
* SQL_ASCII 회귀 테스트 케이스를 추가하십시오
* SJIS 사용자 정의 문자 (UDC) 지원 추가
* 위의 모든 것은 7.0에 나타납니다
1999 년 7 월 11 일
* 클라이언트 인코딩으로 Win1250 (Windows Czech)에 대한 지원 추가
(Pavel Behal에 의해 기여)
* 일부 컴파일러 경고 수정 (Tomoaki Nishiyama에 의해 기여)
1999 년 3 월 23 일
* KOI8 (KOI8-R), WIN (CP1251), ALT (CP866)에 대한 지원 추가
(테스트 해 주신 Oleg Broytmann에 감사드립니다)
* MB 및 로케일의 문제를 해결하십시오
1999 년 1 월 26 일
* 프론트 엔드 인코딩에 대한 big5에 대한 지원을 추가하십시오
(big5를 사용하려면 EUC_TW로 데이터베이스를 작성해야합니다)
* EUC_TW에 대한 회귀 테스트 사례를 추가하십시오
(Jonah Kuo에 의해 기여<jonahkuo@mail.ttn.com.tw
)
1998 년 12 월 15 일
* SQL_ASCII 지원과 관련된 버그가 고정되었습니다
1998 년 11 월 5 일
* 6.4 릴리스. 이 버전에서는 PG_DATABASE에 "인코딩"이 있습니다.
데이터베이스 인코딩을 나타내는 열입니다
1998 년 7 월 22 일
* 컴파일 시간 대신 InitDB/CreatedB에서 인코딩을 결정하십시오
* 사본 명령을 발행 할 때 pgclientencoding 지원
* SQL92 구문 지원 "이름 설정"지원
* LATIN2-5 지원
* 유니 코드 회귀 테스트 케이스를 추가하십시오
* MB의 새로운 테스트 스위트
* 소스 파일 정리
1998 년 6 월 5 일
* 백엔드 간 인코딩 번역에 대한 지원 추가
그리고 프론트 엔드
* 새 명령 세트 client_encoding 등이 추가되었습니다
* LATIN1 문자 세트에 대한 지원을 추가하십시오
* 8 비트 청결을 향상시킵니다
1998 년 4 월 21 일 일부 향상/수정
* 문자 _length (), position (), substring ()가 이제 알고 있습니다
다중 바이트 문자
* Octet_length () 추가
* 구성하려면 -with-MB 옵션을 추가하십시오
* EUC_KR에 대한 새로운 회귀 테스트
(곧 공헌)
* EUC_JP 회귀 테스트에 일부 테스트 사례 추가
* 회귀/회귀에서 문제를 해결합니다. System V의 경우.
* 8 비트 숯을 처리하려면 toupper (), tolower ()를 수정하십시오
1998 년 3 월 25 일 MB PL2는에 통합됩니다.스포츠 토토 사이트6.3.1
1998 년 3 월 10 일 PL2 출시
* EUC_JP, euc_cn 및 mule_internal에 대한 회귀 테스트 추가
* 영어 문서 추가 (이 파일)
* 8 비트 단일 바이트 문자에 관한 문제를 해결하십시오
1998 년 3 월 1 일 PL1 릴리스
Windows 클라이언트 플랫폼에서 설정된 Win1250 문자는 다음과 같습니다. 와 함께스포츠 토토 사이트로케일 지원 가능.
다음을 명심해야합니다 :
성공은 적절한 시스템 로컬에 달려 있습니다. 이것은 그랬습니다 테스트Red Hat 6.0andSlackware 3.6withCS_CZ.ISO8859-2로케일.
서버의 데이터베이스 인코딩을 설정하지 마십시오 Win1250. 아니오가 있으므로 항상 latin2를 사용하십시오 Unix의 Win1250 로케일
Win1250 인코딩은 Windows ODBC에만 사용할 수 있습니다 클라이언트. 캐릭터는 즉, 즉, 그럴 것입니다 제대로 표시되고 저장되었습니다.
Windown Windows/ODBC에서 Win1250
컴파일스포츠 토토 사이트로케일을 활성화하고 서버 측 인코딩이 설정된latin2.
설치를 설정하십시오. 창조하는 것을 잊지 마십시오 환경의 로케일 변수. 예를 들어 (이것은 정확하지 않을 수 있습니다Your환경) :
lc_all = cs_cz.iso8859-2
로컬을 설정하여 서버를 시작해야합니다!
체코 언어로 시도하고 질문.
ODBC 드라이버 설치스포츠 토토 사이트창에서 기계.
데이터 소스를 올바르게 설정하십시오. 이 라인을 포함하십시오 필드의 ODBC 구성 대화 상자설정 연결:
set client_encoding = 'win1250';
이제 다시 시도하지만 ODBC가있는 Windows에서