롤 토토 : 문서 : 9.5 : 롤 토토 | |||
---|---|---|---|
PostgreSQL : 문서 : 9.5 : 스포츠 토토 결과 Support | PostgreSQL : 문서 : 9.5 : 토토 | 22 장. 현지화 | 윈 토토 : 문서 : 9.5 : 일상적인 데이터베이스 유지 관리 작업 |
캐릭터 세트에서 지원PostgreSQLISO 8859 시리즈와 같은 단일 바이트 토토 세트를 포함하여 다양한 토토 세트 (인코딩이라고도 함)에 텍스트를 저장할 수 있습니다.euc(확장 UNIX 코드), UTF-8 및 노새 내부 코드. 모든 지원되는 토토 세트는 클라이언트가 투명하게 사용할 수 있지만 몇 가지는 서버 내에서 사용하기 위해 지원되지 않습니다 (즉, 서버 측 인코딩). 기본 토토 세트는 초기화하는 동안 선택됩니다PostgreSQL데이터베이스 클러스터 사용initdb. 데이터베이스를 만들 때 재정의 할 수 있으므로 다른 토토 세트가 다른 여러 데이터베이스를 가질 수 있습니다..
중요한 제한은 각 데이터베이스의 토토 세트가 데이터베이스와 호환되어야한다는 것입니다.LC_CTYPE(캐릭터 분류) 및lc_collate(토토열 정렬 순서) 로케일 설정. 을 위한C또는posix로케일, 모든 토토 세트가 허용되지만 다른 로케일의 경우 올바르게 작동하는 토토 세트가 하나뿐입니다. (그러나 Windows에서는 UTF-8 인코딩이 모든 로케일과 함께 사용할 수 있습니다.)
표 22-1postgresql.
표 22-1.PostgreSQL토토 세트
이름 | 설명 | 언어 | Server? | 바이트/char | 별칭 |
---|---|---|---|---|---|
big5 | Big Five | 전통 중국어 | 아니오 | 1-2 | Win950, Windows950 |
EUC_CN | 확장 UNIX Code-CN | 단순화 된 중국어 | 예 | 1-3 | |
EUC_JP | 확장 유닉스 코드 -JP | 일본어 | 예 | 1-3 | |
euc_jis_2004 | 확장 UNIX Code-JP, JIS X 0213 | 일본어 | 예 | 1-3 | |
EUC_KR | 확장 UNIX 코드 -KR | 한국어 | 예 | 1-3 | |
EUC_TW | 확장 UNIX Code-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,ecma 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 | Celtic | 예 | 1 | ISO885914 |
latin9 | ISO 8859-15 | 유로 및 악센트가있는 Latin1 | 예 | 1 | ISO885915 |
latin10 | ISO 8859-16,asroSR 14111 | 루마니아어 | 예 | 1 | ISO885916 |
mule_internal | 뮬 내부 코드 | 다국어 EMACS | 예 | 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 CP866 | Cyrillic | 예 | 1 | alt |
Win874 | Windows CP874 | 타이 | 예 | 1 | |
Win1250 | Windows CP1250 | 중앙 유럽 | 예 | 1 | |
Win1251 | Windows CP1251 | Cyrillic | 예 | 1 | WIN |
Win1252 | Windows CP1252 | 서유럽 | 예 | 1 | |
Win1253 | Windows CP1253 | Greek | 예 | 1 | |
Win1254 | Windows CP1254 | 터키 | 예 | 1 | |
Win1255 | Windows CP1255 | 히브리어 | 예 | 1 | |
Win1256 | Windows CP1256 | 아랍어 | 예 | 1 | |
Win1257 | Windows CP1257 | Baltic | 예 | 1 | |
Win1258 | Windows CP1258 | 베트남어 | 예 | 1 | ABC, TCVN, TCVN5712, VSCII |
모든 클라이언트는 아닙니다APIs는 모든 나열된 토토 세트를 지원합니다. 예를 들어,PostgreSQLJDBC 드라이버는 지원하지 않습니다mule_internal, latin6, latin8및latin10.
theSQL_ASCII설정은 다른 설정과 상당히 다르게 작동합니다. 서버 토토 세트가있을 때SQL_ASCII, 서버는 ASCII 표준에 따라 바이트 값 0-127을 해석하는 반면 바이트 값 128-255는 해석되지 않은 토토로 간주됩니다. 설정이있을 때 인코딩 변환이 수행되지 않습니다SQL_ASCII. 따라서이 설정은 인코딩에 대한 무지 선언으로 특정 인코딩이 사용되는 선언이 아닙니다. 대부분의 경우 ASCII가 아닌 데이터를 사용하는 경우 사용하는 것은 현명하지 않습니다.SQL_ASCII설정 때문에PostgreSQLASCII가 아닌 토토를 변환하거나 검증하여 도움을 줄 수 없습니다.
initdba의 기본 토토 세트 (인코딩)를 정의합니다.PostgreSQL클러스터. 예를 들어,
initdb -e euc_jp
기본 토토를 설정합니다.EUC_JP(일본어의 확장 유닉스 코드). 사용할 수 있습니다-encoding대신-e더 긴 옵션 토토열을 선호하는 경우. 그렇지 않은 경우-e또는-encoding옵션이 제공됩니다,initdb지정된 또는 기본 로케일을 기반으로 사용할 적절한 인코딩을 결정하려고 시도합니다.
인코딩이 선택한 로케일과 호환되는 경우 데이터베이스 생성 시간에 비 기본 인코딩을 지정할 수 있습니다..
createb -e euc_kr -t template0 ---lc -collate = ko_kr.euckr ---lc-ctype = ko_kr.euckr Korean
이것은 이름이 지정된 데이터베이스를 만듭니다한국어토토 세트를 사용하는EUC_KR및 로케일KO_KR. 이것을 달성하는 또 다른 방법은이 SQL 명령을 사용하는 것입니다 :
'euc_kr'lc_collate = 'ko_kr.euckr'lc_ctype = 'ko_kr.euckr'template = template0; 인코딩하여 데이터베이스 한국어 제작 한국어를 만듭니다.
위의 명령에 복사를 지정하는지Template0데이터베이스. 다른 데이터베이스를 복사 할 때 인코딩 및 로케일 설정은 소스 데이터베이스의 설정에서 변경할 수 없습니다. 이로 인해 데이터가 손상 될 수 있습니다. 자세한 내용은 참조PostgreSQL : 문서 : 9.5 : 템플릿 스포츠 토토.
데이터베이스의 인코딩은 시스템 카탈로그에 저장됩니다pg_database. 를 사용하여 볼 수 있습니다.PSQL -l옵션 또는\ l명령.
$PSQL -L데이터베이스 목록 이름 | 소유자 | 인코딩 | Collation | CType | 액세스 권한 -----------+----------+-----------+-------------+-------------+------------------------------------- clocaledb | Hlinnaka | SQL_ASCII | C | C | EnglishDB | Hlinnaka | UTF8 | en_gb.utf8 | en_gb.utf8 | 일본어 | Hlinnaka | UTF8 | ja_jp.utf8 | ja_jp.utf8 | 한국 | Hlinnaka | euc_kr | ko_kr.euckr | ko_kr.euckr | Postgres | Hlinnaka | UTF8 | fi_fi.utf8 | fi_fi.utf8 | 템플릿 0 | Hlinnaka | UTF8 | fi_fi.utf8 | fi_fi.utf8 | = c/hlinnaka, hlinnaka = ctc/hlinnaka 템플릿 1 | Hlinnaka | UTF8 | fi_fi.utf8 | fi_fi.utf8 | = c/hlinnaka, hlinnaka = ctc/hlinnaka
중요 :대부분의 현대 운영 체제에서PostgreSQLLC_CTYPE설정, 일치하는 데이터베이스 인코딩 만 사용되도록 시행됩니다. 이전 시스템에서 선택한 로케일에서 예상되는 인코딩을 사용하는 것은 귀하의 책임입니다. 이 분야의 실수는 정렬과 같은 로케일 의존적 작업의 이상한 행동으로 이어질 수 있습니다.
PostgreSQL슈퍼업자가로 데이터베이스를 만들 수 있습니다.SQL_ASCII언제도 인코딩LC_CTYPEC또는POSIX. 위에서 언급했듯이SQL_ASCII데이터베이스에 저장된 데이터에 특정 인코딩이 있음을 시행하지 않으므로이 선택은 로케일 의존적 오해의 위험을 초래합니다. 이 설정 조합을 사용하면 더 이상 사용되지 않으며 언젠가는 금지 될 수 있습니다.
postgresql특정 토토 세트 조합에 대해 서버와 클라이언트 간의 자동 토토 세트 전환을 지원합니다. 변환 정보는에 저장됩니다.PG_CONVERSION시스템 카탈로그.PostgreSQL에 표시된대로 사전 정의 된 변환이 제공됩니다.표 22-2. SQL 명령을 사용하여 새 변환을 만들 수 있습니다변환 생성.
표 22-2. 클라이언트/서버 토토 세트 변환
서버 토토 세트 | 사용 가능한 클라이언트 토토 세트 |
---|---|
big5 | 서버 인코딩으로 지원되지 않음 |
euc_cn | euc_cn, mule_internal, UTF8 |
EUC_JP | EUC_JP, mule_internal, SJIS, UTF8 |
EUC_JIS_2004 | euc_jis_2004, shift_jis_2004, UTF8 |
EUC_KR | euc_kr, mule_internal, UTF8 |
EUC_TW | EUC_TW, big5, mule_internal, UTF8 |
GB18030 | 서버 인코딩으로 지원되지 않음 |
GBK | 서버 인코딩으로 지원되지 않음 |
ISO_8859_5 | ISO_8859_5, Koi8R, 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 |
Johab | 서버 인코딩으로 지원되지 않음 |
KOI8R | KOI8R, ISO_8859_5, mule_internal, UTF8, Win866, Win1251 |
Koi8U | Koi8U, UTF8 |
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, big5, EUC_CN, euc_jp, EUC_KR, EUC_TW, ISO_8859_5, Koi8R, latin1tolatin4, SJIS, Win866, Win1250, Win1251 |
SJIS | 서버 인코딩으로 지원되지 않음 |
shift_jis_2004 | 서버 인코딩으로 지원되지 않음 |
SQL_ASCII | 어떤 (변환 없음이 수행되지 않음) |
UHC | 서버 인코딩으로 지원되지 않음 |
UTF8 | 모든 지원되는 인코딩 |
Win866 | Win866, ISO_8859_5, Koi8R, mule_internal, UTF8, Win1251 |
Win874 | Win874, UTF8 |
Win1250 | Win1250, latin2, mule_internal, UTF8 |
Win1251 | Win1251, ISO_8859_5, Koi8R, 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 |
자동 토토 설정 변환을 활성화하려면 말해야합니다PostgreSQL클라이언트에서 사용하려는 토토 세트 (인코딩). 이것을 달성하는 몇 가지 방법이 있습니다 :
사용\ encoding명령PSQL. \ encoding클라이언트 인코딩을 즉시 변경할 수 있습니다. 예를 들어 인코딩을로 변경하려면SJIS, 유형 :
\ sjis 인코딩
libpq(스포츠 토토 사이트 : 문서 : 9.5 : 제어 기능) 클라이언트 인코딩을 제어하는 기능이 있습니다.
사용set client_encoding to. 이 SQL 명령으로 클라이언트 인코딩 설정을 수행 할 수 있습니다.
set client_encoding to 'value';
또한 표준 SQL 구문을 사용할 수 있습니다이름 설정이 목적은 :
이름 설정 'value';
현재 클라이언트 인코딩을 쿼리하려면 :
show client_encoding;
기본 인코딩으로 돌아 가기 :
Reset Client_Encoding;
사용pgclientencoding. 환경 변수 인 경우pgclientencoding클라이언트의 환경에서 정의되어 있으며, 해당 클라이언트 인코딩은 서버에 대한 연결이 이루어질 때 자동으로 선택됩니다. (위에서 언급 한 다른 방법 중 하나를 사용하여 이후에 재정의 할 수 있습니다.)
구성 변수 사용client_encoding. 인 경우client_encoding변수가 설정되어 있으며 서버에 대한 연결이 이루어질 때 클라이언트 인코딩이 자동으로 선택됩니다. (위에서 언급 한 다른 방법 중 하나를 사용하여 이후에 재정의 할 수 있습니다.)
특정 토토의 변환이 불가능한 경우 - 선택했다고 가정 해euc_jp서버 및latin1클라이언트의 경우, 일부 일본 토토가 반환됩니다.latin1- 오류 가보고되었습니다.
클라이언트 토토 세트가로 정의 된 경우SQL_ASCII, 서버의 토토 세트에 관계없이 인코딩 변환이 비활성화됩니다. 서버와 마찬가지로 사용SQL_ASCIIAll-ASCII 데이터를 사용하지 않는 한 현명하지 않습니다.
이것은 다양한 종류의 인코딩 시스템에 대해 배우기 시작하기에 좋은 출처입니다.
에 대한 자세한 설명을 포함합니다EUC_JP, EUC_CN, EUC_KR, EUC_TW.
유니 코드 컨소시엄의 웹 사이트.
UTF-8 (8 비트 UCS/유니 코드 변환 형식)은 여기에 정의되어 있습니다.
이전 | 롤 토토 : 문서 : 9.5 : 롤 토토 9.5.25 문서화 | 윈 토토 : 문서 : 9.5 : 일상적인 데이터베이스 유지 관리 작업 |
Collation Support | PostgreSQL : 문서 : 9.5 : 토토 | 일상적인 데이터베이스 유지 관리 작업 |