이 문서는 지원되지 않는 토토 꽁 머니 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 23.3. 캐릭터 토토 캔 지원버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

22.2. 토토 꽁 머니 세트 지원

문자 집합 지원포스트그레SQL텍스트를 저장할 수 있습니다. 다음을 포함한 다양한 토토 꽁 머니 세트(인코딩이라고도 함) ISO 8859 시리즈와 같은 단일 바이트 문자 집합 및 다음과 같은 다중 바이트 문자 집합EUC(확장 Unix 코드), utf-8 및 Mule 내부 코드. 지원되는 모든 문자 집합을 사용할 수 있습니다. 클라이언트에 의해 투명하게 제공되지만 일부는 사용이 지원되지 않습니다. 서버 내에서(즉, 서버 측 인코딩으로) 는 초기화하는 동안 기본 문자 집합이 선택되었습니다.포스트그레SQL데이터베이스 클러스터 사용 중initdb. 다음과 같은 경우 재정의될 수 있습니다. 데이터베이스를 생성하면 각각 여러 개의 데이터베이스를 가질 수 있습니다. 다른 문자 집합을 사용합니다.

그러나 중요한 제한사항은 각 데이터베이스가 토토 꽁 머니 집합은 서버와 호환되어야 합니다.LC_CTYPE설정. 언제LC_CTYPE이다C또는POSIX, 모든 토토 꽁 머니 집합이 허용되지만 기타 토토 꽁 머니 집합은 허용됩니다. 설정LC_CTYPE단 하나뿐이에요 올바르게 작동하는 토토 꽁 머니 집합입니다. 이후LC_CTYPE설정이 다음에 의해 고정되었습니다.initdb, 다양한 사용이 가능한 명백한 유연성 클러스터의 다른 데이터베이스에서의 인코딩은 더 이론적입니다. 실제보다(선택한 경우 제외)C또는POSIX로케일(따라서 실제 로케일 인식). 아마도 이러한 메커니즘은 다음과 같습니다. 이후 버전에서 재검토됨포스트그레SQL.

22.2.1. 지원되는 캐릭터 세트

표 22-1표시 사용할 수 있는 토토 꽁 머니 집합토토 꽁 머니.

표 22-1.토토 꽁 머니토토 꽁 머니 세트

이름 설명 언어 서버? 바이트/토토 꽁 머니 별칭
빅5 빅 파이브 중국어 번체 아니요 1-2 WIN950, Windows950
EUC_CN 확장 UNIX 코드-CN 중국어 간체 1-3
EUC_JP 확장 UNIX 코드-JP 일본어 1-3
EUC_JIS_2004 확장 UNIX 코드-JP, JIS X 0213 일본어 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
SHIFT_JIS_2004 시프트 JIS, JIS X 0213 일본어 아니요 1-2
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
WIN1253 윈도우 CP1253 그리스어 1
WIN1254 윈도우 CP1254 터키어 1
WIN1255 윈도우 CP1255 히브리어 1
WIN1256 윈도우 CP1256 아랍어 1
WIN1257 윈도우 CP1257 발트해 1
WIN1258 윈도우 CP1258 베트남어 1 ABC, TCVN, TCVN5712, VSCII

모두는 아님APIs는 모두 지원합니다 나열된 토토 꽁 머니 세트. 예를 들어,포스트그레SQLJDBC 드라이버는 지원하지 않습니다.MULE_INTERNAL, LATIN6, LATIN8LATIN10.

SQL_ASCII설정이 작동함 다른 설정과는 상당히 다릅니다. 때 서버 토토 꽁 머니 집합은SQL_ASCII, 서버는 ASCII에 따라 바이트 값 0-127을 해석합니다. 표준이며 바이트 값 128-255는 해석되지 않은 것으로 간주됩니다. 문자. 인코딩 변환은 다음과 같은 경우 수행되지 않습니다. 설정은SQL_ASCII. 따라서 이 설정은 특정 인코딩을 선언하는 것이 아닙니다. 인코딩에 대한 무지 선언으로 사용 중입니다. 에서 대부분의 경우 ASCII가 아닌 데이터로 작업하는 경우 를 사용하는 것은 현명하지 못하다.SQL_ASCII설정, 왜냐하면토토 꽁 머니될 것이다 비ASCII로 변환하거나 유효성을 검사하는 데 도움을 드릴 수 없습니다. 문자.

22.2.2. 토토 꽁 머니 집합 설정

initdb기본값을 정의합니다. a에 대한 토토 꽁 머니 집합토토 꽁 머니클러스터. 예를 들어,

initdb -E EUC_JP

기본 문자 집합(인코딩)을 다음으로 설정합니다.EUC_JP(일본어용 확장 Unix 코드). 당신 사용할 수 있습니다--인코딩대신에-E더 긴 옵션을 입력하려는 경우 토토 꽁 머니열. 그렇지 않은 경우-E또는--인코딩옵션이 주어졌습니다.initdb적절한 결정을 시도합니다. 지정된 또는 기본 로케일을 기반으로 사용할 인코딩입니다.

선택한 경우C또는POSIX로케일, 당신은 다른 토토 꽁 머니 집합을 가진 데이터베이스:

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_CTYPE설정하면 이를 시행하게 됩니다. 올바른 데이터베이스 인코딩만 사용됩니다. 더 오래된 시스템을 사용하는 것은 귀하의 책임입니다. 선택한 로케일에서 예상되는 인코딩입니다. 에이 이 분야의 실수는 이상한 일로 이어질 가능성이 높습니다. 다음과 같은 로캘 종속 작업의 잘못된 동작 정렬 중입니다.

포스트그레SQL허용하겠습니다 데이터베이스를 생성하는 수퍼유저SQL_ASCII언제라도 인코딩LC_CTYPE아닙니다C또는POSIX. 위에서 언급한 바와 같이,SQL_ASCII데이터가 강제로 실행되지 않습니다. 데이터베이스에 저장된 특정 인코딩이 있으므로 이 선택은 로케일에 따른 오작동의 위험을 초래합니다. 이 설정 조합을 사용하는 것은 더 이상 사용되지 않으며 다음과 같은 경우가 있을 수 있습니다. 언젠가는 완전히 금지될 것입니다.

22.2.3. 서버와 서버 간 자동 토토 꽁 머니 집합 변환 클라이언트

토토 꽁 머니지원하다 서버와 클라이언트 간의 자동 문자 집합 변환 특정 토토 꽁 머니 세트 조합의 경우. 전환 정보는에 저장됩니다.pg_conversion시스템 카탈로그.토토 꽁 머니미리 정의된 일부가 함께 제공됩니다. 다음과 같이 전환이 발생합니다.표 22-2. SQL 명령을 사용하여 새 변환을 생성할 수 있습니다.전환 생성.

표 22-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, 라틴어1LATIN4, 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
WIN1253 WIN1253, UTF8
WIN1254 WIN1254, UTF8
WIN1255 WIN1255, UTF8
WIN1256 WIN1256, UTF8
WIN1257 WIN1257, UTF8
WIN1258 WIN1258, UTF8

자동 문자 집합 변환을 활성화하려면 다음을 수행해야 합니다. 말하다포스트그레SQL캐릭터 클라이언트에서 사용하려는 설정(인코딩)입니다. 있다 이를 달성하는 몇 가지 방법:

  • 다음을 사용하여\인코딩명령 입력psql. \인코딩클라이언트를 변경할 수 있습니다 즉시 인코딩. 예를 들어 인코딩을 다음으로 변경하려면SJIS, 유형:

    \SJIS 인코딩
  • libpq (섹션 30.9)에는 다음과 같은 기능이 있습니다. 클라이언트 인코딩을 제어합니다.

  • 사용 중클라이언트 인코딩을 다음으로 설정. 클라이언트 인코딩 설정은 이 SQL을 사용하여 수행할 수 있습니다. 명령:

    클라이언트_인코딩을 '로 설정';
    

    또한 표준 SQL 구문을 사용할 수 있습니다.이름 설정이 목적을 위해:

    이름 설정 '';
    

    현재 클라이언트 인코딩을 쿼리하려면:

    클라이언트_인코딩 표시;

    기본 인코딩으로 돌아가려면:

    클라이언트_인코딩 재설정;
  • 사용 중PGCLIENTENCODING. 만약 환경 변수PGCLIENTENCODING클라이언트의 환경에서는 해당 클라이언트 인코딩이 자동으로 선택됩니다. 서버에 연결되면. (이것은 이후에 다른 방법을 사용하여 재정의됩니다. 위에서 언급했습니다.)

  • 구성 변수 사용client_encoding. 만약client_encoding변수는 설정하면 클라이언트 인코딩이 자동으로 선택됩니다. 서버에 연결이 이루어졌습니다. (이것은 이후에 가능합니다. 언급된 다른 방법 중 하나를 사용하여 재정의됨 위.)

특정 토토 꽁 머니의 변환이 불가능한 경우 — 당신이 선택했다고 가정 해 봅시다EUC_JP에 대한 서버 및LATIN1클라이언트의 경우 일부 일본어 문자에는 표현이 없습니다.LATIN1— 그렇다면 오류는 다음과 같습니다. 보고되었습니다.

클라이언트 문자 집합이 다음과 같이 정의된 경우SQL_ASCII, 인코딩 변환이 비활성화되었습니다. 서버의 토토 꽁 머니 집합에 관계없이. 마찬가지로 서버, 사용SQL_ASCII현명하지 못하다 전체 ASCII 데이터로 작업하지 않는 한.

22.2.4. 추가 자료

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

http://www.i18ngurus.com/docs/984813247.html

캐릭터에 관한 광범위한 문서 모음 세트, 인코딩 및 코드 페이지.

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 3629

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