database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 4476 게시물 읽기
No. 4476
7.3 에서의 한글 소팅 문제 문의
작성자
김우승
작성일
2002-12-15 16:13
조회수
1,906

안녕하세요.

 

postgres 을 사용해 볼려구 리눅스에 7.3을 설치하고 psql에 접속해서 사용해보고

있는데, 역시 한글문제가 제 발목을 잡는 군요.

일단 7.3에서는 디폴트로 multibyte 지원을 하기 때문에 굳이

별도의 옵션을 주고 컴파일 할 필요는 없습니다.

 

하지만 왠지 설치하고나서 order by 명령을 사용하면 제대로

소팅이 되지를 않네요.

encoding 도 SQL_ASCII, EUC_KR , UNICODE 로 다 해보았지만

원하는 결과대로 소팅이 되지 않습니다.

 

헷갈리는 것은 제가 PC에서 cygwin을 사용하기 때문에 cygwin에 기본적으로 설치되는 있는

postgres 7.3의 경우에는 아무런 문제없이 잘 소팅이 됩니다.

cygwin에서는 SQL_ASCII 이나 EUC_KR 인코딩을 사용해서 데이터베이스

를 만들어도 (createdb -E encoding db_name) 제대로 소팅을 합니다.

ODBC 도 잘되더군요. (이건 직접 ODBC data source 만들고 VB에서

테스트 해보았습니다.)

 

문제는 리눅스에서 제가 직접 컴파일한 것은 안되는 것이죠.

 

참고로 사용하는 리눅스가 한글 리눅스가 아니라서 기본 locale 값이

en_US 로 되어 있습니다. 이게 문제가 될까요? 제 생각에는 상관이

없다고 보는데. 확신할 수가 없네여. 최악으 경우 리눅스의 glibc 의

locale 지원에 문제가 있는 것이라면 리눅스를 새로 설치해야 한다는

것인데 운영중인 서버라 현실성도 없고...

 

여러분들의 고견을 들려주십시요,

 

그럼.

이 글에 대한 댓글이 총 3건 있습니다.

현재 쉘의 언어 설정만을 바꿔서 해보심이..?

배쉬라면

export LC_ALL="EUC_KR" 또는 "ko_KR"

export LANG="EUC_KR" 또는 "ko_KR"

하시고 initdb 부터 해보시기 바랍니다 initdb 는 LC_ALL 이라는 환경변수를 참조하는거 같더군요(7.2.3의 경우에는요 -.-;;)

7.3은 아직 해보질 않아서 =_=

신기배(nonun)님이 2002-12-15 16:34에 작성한 댓글입니다.

흠 그런 조합이 있었군요.

신기배님이 말씀하신데로 하고 나서 postmaster을 실행하니 에러가 나더군요. LC_MESAAGE 에 설정된 EUC_KR 때문에 에러가 나서 서버가 실행되지 안습니다. 하지만 postgresql.conf 파일의 맨 밑의 변수 4가지

LC_MESSAGES = 'en_US'

LC_MONETARY = 'en_US'

LC_NUMERIC = 'en_US'

LC_TIME = 'en_US'

로 다시 수정하고 나니까 일단 DB는 실행됩니다.

이것도 전에 해보았지만 에러가 나서 동작하지 않을 것이라 생각했는데 이 부분만 이렇게 하고나서

createdb 할 때 -E 옵션에서 EUC_KR을 주고나서

데이터를 생성하고 나서 소팅을 하니 되는 군요.

일단 사용하는 리눅스가 영문이라서 EUC_KR 에 대한 locale 처리를 하지 못해서 생긴 문제였는데 일단 DB가 실행하면서는 데이터들을 제대로 처리하는 것 같습니다.

 

아무래도 와우리눅스나 EUC_KR을 가지고 있는 리눅스 버전을 사용하게 되면(정확한 얘긴가? ^^) 접하지 않는 문제일 듯 싶습니다.

 

감사합니다..

김우승님이 2002-12-15 17:21에 작성한 댓글입니다.

제가 살펴본 봐에 의한 7.x 대 한글 소팅 문제는 다음과 같습니다.

 

결론부터 말하면, 해결책은 없다는 것입니다.

 

(일단, 이곳에서 지금쓰려고 하는 한글이 제대로 보일지는 모르겠지만, )

 

아무튼

일반적인(ksc5601 코드, euc-kr) 한글 코드의 정렬문제는 현재 7.3 버전에서 발생하지는 않습니다!

 

문제는 확장 완성형이 문제인데,

확장 완성형의 코드 체계를 잘 보시면, 그 원인을 알 수 있겠지만,

 

'퀔'의 문자 순서가, '나'보다 빠릅니다.

문제는 바로 이점입니다.

 

한글데이터가 오직 euc-kr로만 저장된다면, 문제는 깔끔하게 해결나겠지만(기본 7.2 버전), 7.3에서 확장완성형 글자들을 대폭 지원하면서, (물론 조합형처럼 완벽하게 모든 한글을 지원하지는 않습니다) 이런 한글 소팅 문제가 대두되고 있습니다.

 

하지만, 확장완성형 문자셋을 사용한다면, 어쩔 수 없이 해결날 수 없는 문제입니다.

 

해결책은 utf-8 문자셋을 사용하는 것입니다.

김상기(ioseph)님이 2002-12-16 19:41에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4481특정날짜/시각에 실행되는 SP/트리거가 가능한지.. [1]
윤명식
2002-12-17
1232
4478질의처리시간측정에 대한 sql문 [2]
박대일
2002-12-16
1036
4477[궁금2] Servet 에서 JDBC 사용중 예외인데요..
JDBC
2002-12-16
967
44767.3 에서의 한글 소팅 문제 문의 [3]
김우승
2002-12-15
1906
4474드디어 다윈에서 pgsql을 -_-;; [7]
신기배
2002-12-12
1089
4472[질문] psql 실행할 때 에러가. [4]
이근호
2002-12-11
3104
4471cron으로 자동백업을 하려는... [1]
김현수
2002-12-11
1277
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다