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
운영게시판
최근게시물
MySQL Q&A 28114 게시물 읽기
No. 28114
[질문]Unicode(중국어간체) 저장안되는데..
작성자
초보
작성일
2009-03-31 10:39
조회수
9,543

중국어(간체)를 mysql 에 넣으려고 하니 글자가 깨집니다.(?? 으로 나타납니다.)

(사용프로그램은 delphi 에서 사용합니다.)

이것저것 인터넷에서 찾아서 해 보았는데 해결이 안되고 있습니다.

그런데 서버의 mysql 셋팅이 system character 은 utf8 인데

다른 모든 부분은 euckr 입니다.


문제는 지금 서버에 데이타가 약 40만건이 있는게 문제입니다.


현재 설정되어 있는 내용입니다.


character_set_client           euckr                                  

character_set_connection   euckr                                  

character_set_database     euckr                                  

character_set_filesystem    binary                                 

character_set_results         euckr                                  

character_set_server         euckr                                  

character_set_system       utf8                                   

collation_connection         euckr_korean_ci                        

collation_database           euckr_korean_ci                        

collation_server               euckr_korean_ci                      


만약 euckr 을 utf 로 변경하게 되면 기존데이타의 한글 깨짐현상은 어떻게 해야 하나요?


부탁드립니다.  

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

40만건 중에서 한 두개 깨지더라도 큰 문제가 될 수 있으니, utf8으로 구성된 같은 형태의 DB를 구성하고, 기존 데이터를 dump한 후에, dump된 텍스트 파일을 euckr(cp949) > utf8 컨버팅 후에 밀어넣고, 스크립트와 iconv의 도움을 통해 정상적으로 컨버팅 되었는지 확인해보는 방법이 있겠습니다.

 

( 일반적으로 euckr > utf8시에 한글이 깨지는 경우는 거의 없긴 한데, 제가 경험했던 email쪽에서는 꼭 그런 것만도 아니더군요 -_-;;; )

박현우(lqez)님이 2009-04-02 10:18에 작성한 댓글입니다.

감사합니다.
데이타 때문에 쉽게 적용을 시킬수가 없어서...]
그런데 중국간체가 깨지는것은 charater seting 때문에 그런거죠?
어느 부분을 uft8 로 변경해야 하는건지...

초보님이 2009-04-02 10:29에 작성한 댓글입니다. Edit

일단 해당 데이터베이스를 생성하실 때 기본 collation을 utf8_unicode_ci등으로 바꿔주셔야 정상적인 정렬 상태를 기대할 수 있습니다.

 

나머지는 my.cnf를 굳이 바꿀 필요 없이, 접속하는 클라이언트(어플리케이션) 단에서 set names utf8 한번 해주고 시작하시면 될 것 같습니다. set names는 MySQL 도움말에 따르면 아래의 효과가 있습니다.

 

A SET NAMES 'x' statement is equivalent to these three statements:

 

SET character_set_client = x;

SET character_set_results = x;

SET character_set_connection = x;

 

나머지 사항들도 아래의 URL을 참고하세요.

http://dev.mysql.com/doc/refman/5.1/en/charset-connection.html

 

 

박현우(lqez)님이 2009-04-02 10:44에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
28117[문의] 쿼리 하나만 부탁드릴께요. [1]
새벽소리
2009-03-31
5060
28116쿼리 질문좀 드리겠습니다.. (mysql 4.1.3) 그룹바이? 관련.. [1]
와니
2009-03-31
5173
28115[질문] 윈도우용 MySQL데이터 [1]
정재만
2009-03-31
5374
28114[질문]Unicode(중국어간체) 저장안되는데.. [3]
초보
2009-03-31
9543
28113기본 int형은 왜 11비트 인가요? [2]
김지현
2009-03-30
5306
28112숫자가 시작하는위치 취득. [2]
mossmin
2009-03-30
5297
28111쿼리 개선에 대해 문의 [2]
이동일
2009-03-30
5463
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다