이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 23.3. 캐릭터 토토 캔 지원버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

22.3. 캐릭터 세트 지원

캐릭터가 지원을 설정하는PostgreSQLISO 8859 시리즈와 같은 단일 바이트 문자 토토 커뮤니티 및와 같은 단일 바이트 문자 토토 커뮤니티를 포함하여 다양한 문자 토토 커뮤니티 (C |ollation |이라고도 함)에 텍스트를 저장할 수 있습니다.euc(확장 UNIX 코드), UTF-8 및 노새 내부 코드. 모든 지원되는 문자 토토 커뮤니티는 클라이언트가 투명하게 사용할 수 있지만 몇 가지는 서버 내에서 사용하기 위해 지원되지 않습니다 (즉, 서버 측 인코딩).PostgreSQL데이터베이스 클러스터 사용initdb. 데이터베이스를 만들 때 재정의 할 수 있으므로 다른 문자 토토 커뮤니티가 다른 여러 데이터베이스를 가질 수 있습니다..

중요한 제한은 각 데이터베이스의 문자 토토 커뮤니티가 데이터베이스와 호환되어야한다는 것입니다.LC |_C |TYPE(캐릭터 분류) 및LC_COLLATE(문자열 정렬 순서) 로케일 설정. 을 위한C또는posix로케일, 모든 문자 토토 커뮤니티가 허용되지만 다른 로케일의 경우 올바르게 작동하는 문자 토토 커뮤니티 만 있습니다. (그러나 Windows에서는 UTF-8 C |ollation |이 모든 로케일과 함께 사용할 수 있습니다.)

22.3.1. 지원되는 문자 토토 커뮤니티

표 22-1PostgreSQL.

표 22-1.PostgreSQL문자 토토 커뮤니티

소유자 | 설명 언어 Server? 바이트/char 별칭
big5 Big Five 전통 중국어 아니오 1-2 Win950,12521_12533
EUC |_C |N 확장 유닉스 코드 -C |N 단순화 된 중국어 1-3
euc_jp 확장 UNIX 코드 -JP 일본어 1-3
euc_jis_2004 확장 UNIX Code-JP, JIS X 0213 일본어 1-3
EUC_KR 확장 UNIX 코드 -KR | | |어 1-3
EUC |_TW 확장 UNIX C |ode-TW 전통 중국어, 대만 1-3
GB18030 국가 표준 중국어 아니오 1-4
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,EC |MA 118 라틴/그리스어 1
ISO_8859_8 ISO 8859-8,ecma 121 라틴/히브리어 1
Johab Johab | | | (Hangul) 아니오 1-3
Koi8R Koi8-r 키릴 릭 (러시아어) 1 KOI8
Koi8U Koi8-U 사이릴 릭 (우크라이나) 1
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 Nordic 1 ISO885910
latin7 ISO 8859-13 Baltic 1 ISO885913
latin8 ISO 8859-14 C |eltic 1 ISO885914
latin9 ISO 8859-15 유로 및 악센트가있는 Latin1 1 ISO885915
latin10 ISO 8859-16,asroSR 14111 루마니아어 1 ISO885916
mule_internal 뮬 내부 코드 다국어 EMAC |S 1-4
SJIS Shift JIS 일본어 아니오 1-2 MSKANJI,Shiftjis,Win932,Windows932
shift_jis_2004 Shift JIS, JIS X 0213 일본어 아니오 1-2
SQL_ASCII 불특정 (텍스트 참조) any 1
UHC | Unified Hangul 코드 한국어 아니오 1-2 Win949,Windows949
UTF8 유니 코드, 8 비트 all 1-4 유니 코드
Win866 Windows C |P866 사이릴 릭 1 alt
Win874 Windows CP874 타이 1
Win1250 Windows C |P1250 중앙 유럽 1
Win1251 Windows CP1251 Cyrillic 1 WIN
Win1252 Windows C |P1252 서유럽 1
Win1253 Windows CP1253 Greek 1
Win1254 Windows C |P1254 터키 1
Win1255 Windows CP1255 히브리어 1
Win1256 Windows CP1256 아랍어 1
Win1257 Windows CP1257 Baltic 1
Win1258 Windows CP1258 베트남 1 ABC |,TCVN,TC |VN5712,VSCII

모든 클라이언트는 아닙니다APIs는 모든 나열된 문자 토토 커뮤니티를 지원합니다. 예를 들어,PostgreSQLJDBC | 드라이버는 지원하지 않습니다mule_internal,latin6,latin8latin10.

theSQL_ASC |II설정은 다른 설정과 상당히 다르게 작동합니다. 서버 문자 토토 커뮤니티가있을 때SQL_ASCII, 서버는 ASC |II 표준에 따라 바이트 값 0-127을 해석하는 반면 바이트 값 128-255는 해석되지 않은 문자로 간주됩니다. 설정이있을 때 C |ollation | 변환이 수행되지 않습니다SQL_ASCII. 따라서이 설정은 인코딩에 대한 무지 선언으로 특정 인코딩이 사용되는 선언이 아닙니다.SQL_ASC |II설정PostgreSQLASC |II가 아닌 문자를 변환하거나 검증하여 도움을 줄 수 없습니다.

22.3.2. 문자 토토 커뮤니티 설정

initdba의 기본 문자 토토 커뮤니티 (C |ollation |)를 정의합니다.postgresql클러스터. 예를 들어,

initdb -e euc_jp

기본 문자를 설정합니다.EUC |_JP(일본어의 확장 유닉스 코드). 사용할 수 있습니다-encoding대신-e더 긴 옵션 문자열을 선호하는 경우. 그렇지 않은 경우-e또는-encoding옵션이 제공됩니다.initdb지정된 또는 기본 로케일을 기반으로 사용할 적절한 C |ollation |을 결정하려고 시도합니다.

인코딩이 선택한 로케일과 호환되는 경우 데이터베이스 생성 시간에 비 기본 인코딩을 지정할 수 있습니다..

createb -e euc_kr -t template0 ---lc -collate = ko_kr.euckr ---lc-ctype = ko_kr.euckr korean

이것은 이름이 지정된 데이터베이스를 생성합니다 | | |어문자 토토 커뮤니티를 사용하는EUC_KR및 로케일KO_KR. 이것을 달성하는 또 다른 방법은이 SQL 명령을 사용하는 것입니다 :

'Postgres | |'lc_collate = 'Postgres |'lc_ctype = 'Postgres |'template = template0; C |ollation |하여 데이터베이스  | | |어를 만듭니다.

위의 명령에 복사를 지정하는지Template0데이터베이스. 다른 데이터베이스를 복사 할 때 C |ollation | 및 로케일 설정은 소스 데이터베이스의 설정에서 변경할 수 없습니다. 이로 인해 데이터가 손상 될 수 있습니다.PostgreSQL : 문서 : 9.4 : 템플릿 토토 핫.

데이터베이스 C |ollation |은 시스템 카탈로그에 저장됩니다pg_database. 를 사용하여 볼 수 있습니다.PSQL -l옵션 또는\ l명령.

$PSQL -L데이터베이스 목록

중요 :대부분의 현대 운영 체제에서PostgreSQLLC |_C |TYPE설정, 일치하는 데이터베이스 인코딩 만 사용되도록 시행됩니다. 이전 시스템에서 선택한 로케일에서 예상되는 인코딩을 사용하는 것은 귀하의 책임입니다.

PostgreSQLSuperuser가로 데이터베이스를 만들 수 있습니다.SQL_ASCII언제도 C |ollation |LC |_C |TYPEC또는posix. 위에서 언급했듯이SQL_ASCII데이터베이스에 저장된 데이터에 특정 C |ollation |이 있음을 시행하지 않으므로이 선택은 로케일 의존적 오해의 위험을 초래합니다. 이 설정 조합을 사용하면 더 이상 사용되지 않으며 언젠가는 금지 될 수 있습니다.

22.3.3. 자동 문자 서버와 클라이언트 간의 변환

PostgreSQL특정 문자 토토 커뮤니티 조합에 대한 서버와 클라이언트 간의 자동 문자 토토 커뮤니티 전환을 지원합니다. 변환 정보는에 저장됩니다.PG_C |ONVERSION시스템 카탈로그.PostgreSQL표 22-2. SQL 명령을 사용하여 새 변환을 만들 수 있습니다변환 생성.

표 22-2. 클라이언트/서버 문자 토토 커뮤니티 변환

서버 문자 토토 커뮤니티 사용 가능한 클라이언트 문자 토토 커뮤니티
big5 서버 인코딩으로 지원되지 않음
EUC |_C |N EUC_CN,mule_internal,UTF8
EUC |_JP EUC |_JP,mule_internal,sjis,일본어 | |
EUC |_JIS_2004 EUC |_JIS_2004,shift_jis_2004,UTF8
Postgres | | EUC_KR,mule_internal,UTF8
euc_tw EUC_TW,big5,mule_internal,UTF8
GB18030 서버 인코딩으로 지원되지 않음
GBK 서버 인코딩으로 지원되지 않음
ISO_8859_5 ISO_8859_5,KOI8R,mule_internal,일본어 | |,Win866,Win1251
ISO_8859_6 ISO_8859_6,일본어 | |
ISO_8859_7 ISO_8859_7,UTF8
ISO_8859_8 ISO_8859_8,일본어 | |
Johab 서버 C |ollation |으로 지원되지 않음
KOI8R Koi8R,ISO_8859_5,mule_internal,일본어 | |,Win866,Win1251
Koi8U Koi8U,UTF8
latin1 latin1,mule_internal,UTF8
latin2 latin2,mule_internal,UTF8,Win1250
latin3 latin3,mule_internal,일본어 | |
latin4 latin4,mule_internal,UTF8
latin5 latin5,일본어 | |
latin6 latin6,UTF8
latin7 latin7,UTF8
latin8 latin8,일본어 | |
latin9 latin9,일본어 | |
latin10 latin10,UTF8
mule_internal mule_internal,big5,euc_cn,euc_jp,EUC |_KR,EUC_TW,ISO_8859_5,Koi8R,latin1tolatin4,SJIS,Win866,Win1250,Win1251
sjis 서버 인코딩으로 지원되지 않음
shift_jis_2004 서버 C |ollation |으로 지원되지 않음
SQL_ASCII 어떤 것도 (전환되지 않음)
UHC | 서버 C |ollation |으로 지원되지 않음
일본어 | | 모든 지원되는 C |ollation |
Win866 Win866,ISO_8859_5,Koi8R,mule_internal,UTF8,Win1251
Win874 Win874,일본어 | |
Win1250 Win1250,latin2,mule_internal,UTF8
Win1251 Win1251,ISO_8859_5,Koi8R,mule_internal,UTF8,Win866
Win1252 Win1252,UTF8
Win1253 Win1253,일본어 | |
Win1254 Win1254,일본어 | |
Win1255 Win1255,UTF8
Win1256 Win1256,일본어 | |
Win1257 Win1257,UTF8
Win1258 Win1258,일본어 | |

자동 문자 설정 변환을 활성화하려면 말해야합니다PostgreSQL클라이언트에서 사용하려는 문자 토토 커뮤니티 (C |ollation |). 이것을 달성하는 몇 가지 방법이 있습니다 :

  • 사용\ encoding명령에서PSQL.\ encoding클라이언트 C |ollation |을 즉시 변경할 수 있습니다. 예를 들어 C |ollation |을로 변경하려면SJIS, 유형 :

    \ sjis C |ollation |
  • libpq(스포츠 토토 사이트 : 문서 : 9.4 : 제어 기능) 클라이언트 인코딩을 제어하는 ​​기능이 있습니다.

  • 사용client_encoding set. 이 SQL 명령으로 클라이언트 C |ollation | 설정을 수행 할 수 있습니다.

    client_encoding set client_encoding to 'value';

    표준 SQL 구문을 사용할 수 있습니다소유자 | 설정이 목적은 :

    이름 설정 'value';

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

    show client_encoding;

    기본 C |ollation |으로 돌아 가기 :

    Reset Client_Encoding;
  • 사용pgclientencoding. 환경 변수 인 경우pgclientencoding클라이언트의 환경에서 정의되어 있으며, 해당 클라이언트 C |ollation |은 서버에 대한 연결이 이루어질 때 자동으로 선택됩니다. (위에서 언급 한 다른 방법 중 하나를 사용하여 이후에 재정의 할 수 있습니다.)

  • 구성 변수 사용client_encoding. 인 경우client_encoding변수가 설정되어 있으며 서버에 대한 연결이 이루어질 때 클라이언트 C |ollation |이 자동으로 선택됩니다. (위에서 언급 한 다른 방법 중 하나를 사용하여 이후에 재정의 할 수 있습니다.)

특정 문자의 변환이 불가능한 경우 - 선택했다고 가정 해EUC_JP서버 및latin1클라이언트의 경우, 일부 일본 문자가 반환됩니다.latin1- 오류 가보고되었습니다.

클라이언트 문자 토토 커뮤니티가로 정의 된 경우SQL_ASC |II, 서버의 문자 토토 커뮤니티에 관계없이 인코딩 변환이 비활성화됩니다. 서버와 마찬가지로 사용SQL_ASCIIAll-ASC |II 데이터를 사용하지 않는 한 현명하지 않습니다.

22.3.4. 추가 읽기

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

CJKV 정보 처리 : 중국어, 일본어, 한국 및 베트남 컴퓨팅

에 대한 자세한 설명을 포함합니다EUC |_JP,EUC |_C |N,EUC_KR,EUC_TW.

http : //www.unicode.org/

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

RFC | 3629

UTF-8 (8 비트 UCS/유니 코드 변환 형식)은 여기에 정의되어 있습니다.