2025 년 7 월 17 일 : | 윈 토토 : 윈 토토 18 베타
이 문서는 지원되지 않는 버전의 윈 토토을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 23.3. 캐릭터 토토버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

20.2. 캐릭터 윈 토토 지원

캐릭터가 지원을 설정하는윈 토토텍스트를 a에 저장할 수 있습니다 단일 바이트 문자 윈 토토를 포함한 다양한 문자 윈 토토 ISO 8859 시리즈 및 다중 바이트 문자 윈 토토와 같은 처럼euc(확장 유닉스 코드), 유니 코드 및 뮬 내부 코드. 모든 문자 윈 토토를 사용할 수 있습니다 서버 전체에 투명하게. (확장자를 사용하는 경우 다른 출처의 기능은 그들이 쓴지 여부에 따라 다릅니다. 그들의 코드가 올바르게.) 기본 문자 윈 토토가 선택됩니다 초기화하는 동안윈 토토데이터베이스 클러스터 사용initdb. a를 만들 때 무시할 수 있습니다 사용 사용 데이터베이스createb또는 사용하여 SQL 명령데이터베이스 생성. 그래서 당신은 할 수 있습니다 문자 윈 토토가 다른 여러 데이터베이스가 있습니다.

20.2.1. 지원되는 문자 윈 토토

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

20.2.2. 문자 윈 토토 설정

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

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

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이 정의됩니다 여기.