Postgresql 9.3.25 문서화 | ||||
---|---|---|---|---|
토토 꽁 머니 : 문서 : 9.3 : Collation Support | 스포츠 토토 결과 : 문서 : 9.3 : 현지화 | 22 장. 현지화 | 롤 토토 : 문서 : 9.3 : 일상적인 데이터베이스 유지 보수 작업 |
캐릭터 세트 지원postgresql텍스트를 a에 저장할 수 있습니다 다양한 문자 세트 (인코딩이라고도 함)를 포함합니다 ISO 8859 시리즈와 같은 단일 바이트 문자 세트 및 와 같은 다중 바이트 문자 세트euc(확장 UNIX 코드), UTF-8 및 MULE 내부 코드. 지원되는 모든 문자 세트를 사용할 수 있습니다 고객은 투명하게하지만 일부는 사용을 지원하지 않습니다. 서버 내에서 (즉, 서버 측 인코딩). 기본값 문자 세트는 초기화하는 동안 선택됩니다postgresql데이터베이스 클러스터 사용initdb. a를 만들 때 무시할 수 있습니다 데이터베이스이므로 각각 다른 데이터베이스를 가질 수 있습니다. 캐릭터 세트.
11305_11419LC_CTYPE(캐릭터 분류) 및lc_collate(문자열 정렬 순서) 로케일 설정. 을 위한C또는posix로케일, 모든 캐릭터 세트가 허용되지만 다른 지역의 경우 올바르게 작동하는 하나의 문자 세트입니다. (창문에서 그러나 UTF-8 인코딩은 모든 로케일과 함께 사용할 수 있습니다.)
표 22-1에서 사용할 수있는 문자 세트postgresql.
Table 22-1.postgresql문자 세트
이름 | 설명 | 언어 | 서버? | 바이트/char | 별칭 |
---|---|---|---|---|---|
big5 | Big Five | 전통 중국어 | 아니오 | 1-2 | Win950, Windows950 |
EUC_CN | 확장 UNIX 코드 -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 | 한국 (Ha토토 베이ul) | 아니오 | 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 | Yes | 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 Ha토토 베이ul 코드 | 한국어 | 아니오 | 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 | Hebrew | 예 | 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설정PostgreSQL당신을 도울 수 없습니다 비 ASCII 문자 변환 또는 검증.
initdb기본 문자를 정의합니다 a set (인코딩)postgresql클러스터. 예를 들어,
initdb -e euc_jp
기본 문자를 설정합니다.EUC_JP(일본어의 확장 유닉스 코드). 당신은 할 수 있습니다 사용-encodi토토 베이대신-e더 긴 옵션 문자열을 선호하는 경우. 그렇지 않은 경우-e또는-encodi토토 베이옵션이 제공됩니다.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.3 : 사설 토토 데이터베이스.
데이터베이스의 인코딩은 시스템 카탈로그에 저장됩니다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
중요 :On most modern operati토토 베이 systems,PostgreSQL어떤 문자 세트를 결정할 수 있습니다 에 의해 암시됩니다LC_CTYPE설정 및 IT 일치하는 데이터베이스 인코딩 만 사용되도록 시행합니다. ~에 오래된 시스템 귀하가 사용하는 것은 귀하의 책임입니다. 선택한 로케일에 의해 예상되는 인코딩. 실수 이 지역은 로케일 의존적으로 이상한 행동으로 이어질 것입니다. 정렬과 같은 작업.
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캐릭터 세트 (인코딩) 클라이언트에서 사용하고 싶습니다. 몇 가지가 있습니다 이것을 달성하는 방법 :
사용\ encodi토토 베이명령에서PSQL. \ encodi토토 베이클라이언트 인코딩을 변경할 수 있습니다 파리. 예를 들어 인코딩을로 변경하려면SJIS, 유형 :
\encoding SJIS
libpq(섹션 31.10) 제어 기능이 있습니다 클라이언트 인코딩.
사용set client_encodi토토 베이 to. 환경 클라이언트 인코딩은이 SQL 명령으로 수행 할 수 있습니다.
client_encodi토토 베이 set client_encodi토토 베이 to 'value';
또한 표준 SQL 구문을 사용할 수 있습니다세트 이름이 목적은 :
이름 설정 'value';
현재 클라이언트 인코딩을 쿼리하려면 :
show client_encodi토토 베이;
기본 인코딩으로 돌아 가기 :
Reset Client_Encodi토토 베이;
사용pgclientencodi토토 베이. 만약 환경 변수pgclientencodi토토 베이IS 클라이언트의 환경에서 정의 된 고객 인코딩은 다음과 같습니다 서버에 대한 연결이 이루어질 때 자동으로 선택됩니다. (다른 방법 중 하나를 사용하여 이후에 재정의 할 수 있습니다. 위에서 언급했습니다.)
구성 변수 사용client_encodi토토 베이. 인 경우client_encodi토토 베이변수가 설정되었고 해당 클라이언트 인코딩이 연결할 때 자동으로 선택됩니다. 서버가 만들어졌습니다. (이는 이후에 어떤 것을 사용하여 우선 할 수 있습니다 위에서 언급 한 다른 방법 중.)
특정 문자의 변환이 불가능한 경우 - 당신이 선택했다고 가정 해EUC_JP서버의 경우 그리고latin1클라이언트 및 일부 표현이없는 일본인 캐릭터가 반환됩니다. 안에latin1- 오류 가보고되었습니다.
클라이언트 문자 세트가로 정의 된 경우SQL_ASCII, 인코딩 변환이 비활성화되어 있습니다. 서버의 문자 세트에 관계없이 서버와 마찬가지로 사용SQL_ASCII당신이 그렇지 않으면 현명하지 않습니다 All-Ascii 데이터 작업.
이것은 다양한 종류의 다양한 종류에 대해 배우기 시작하기에 좋은 출처입니다. 인코딩 시스템.
에 대한 자세한 설명을 포함합니다EUC_JP, EUC_CN, EUC_KR, EUC_TW.
유니 코드 컨소시엄의 웹 사이트.
UTF-8 (8 비트 UCS/유니 코드 변환 형식)은 여기에 정의되어 있습니다.
이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
Collation Support | 스포츠 토토 결과 : 문서 : 9.3 : 현지화 | 루틴 데이터베이스 유지 보수 작업 |