2025년 9월 25일:토토 커뮤니티 : 토토
이 문서는 지원되지 않는 윈 토토 버전에 대한 것입니다.
당신은 다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 23.3. 캐릭터 토토 캔 지원버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

20.2. 문자 세트 지원

문자 집합 지원윈 토토텍스트를 저장할 수 있습니다. 단일 바이트 윈 토토 세트를 포함한 다양한 윈 토토 세트 ISO 8859 시리즈와 같은 다중 바이트 윈 토토 집합 와 같이EUC(확장 유닉스 코드), 유니코드 및 Mule 내부 코드. 모든 윈 토토 세트를 사용할 수 있습니다. 서버 전체에서 투명하게. (확장 프로그램을 사용하는 경우 다른 소스의 함수는 그들이 작성했는지 여부에 따라 다릅니다. 코드가 정확합니다.) 기본 윈 토토 집합이 선택되었습니다. 초기화하는 동안윈 토토다음을 사용하는 데이터베이스 클러스터initdb. 생성할 때 재정의할 수 있습니다. 데이터베이스 사용생성된 DB또는 다음을 사용하여 SQL 명령데이터베이스 생성. 그래서 당신은 할 수 있습니다 각각 다른 윈 토토 집합을 가진 여러 데이터베이스가 있습니다.

20.2.1. 지원되는 문자 세트

표 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, LATIN8LATIN10.

20.2.2. 윈 토토 집합 설정

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행)

20.2.3. 서버와 서버 간 자동 윈 토토 집합 변환 클라이언트

윈 토토지원 서버와 클라이언트 간의 자동 문자 집합 변환 특정 문자 세트의 경우. 변환정보는 에 저장됨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, LATIN1LATIN10, 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, 라틴어1LATIN5, 승리, 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).

20.2.4. 추가 자료

이것들은 다양한 종류에 대해 배우기 시작하는 좋은 자료입니다 인코딩 시스템의.

ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/cjk.inf

자세한 설명EUC_JP, EUC_CN, EUC_KR, EUC_TW섹션 3.2에 나타납니다.

http://www.unicode.org/

유니코드 컨소시엄 웹사이트

RFC 2044

UTF-8이 정의되었습니다. 여기.