Projects/Server
mysql 문자셋 인코딩 관련
>동네청년<
2007. 3. 7. 14:01
기존 버전에서는 "euc-kr"로 표기되는 문자셋이 "euckr"로 바뀌었다.
/etc/my.cnf
[client] default-character-set=utf8 [mysqld] default-character-set=utf8 [mysqldump] default-character-set=utf8
JDBC Driver URL
jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=UTF8
현제 문자셋 정보 보기
show variables like 'c%';- 결과
character_set_client : utf8 character_set_connection : utf8 character_set_database : utf8 character_set_results : utf8 character_set_server : utf8 character_set_system : utf8 character_sets_dir : /usr/share/mysql/charsets/ collation_connection : utf8_general_ci collation_database : utf8_general_ci collation_server : utf8_general_ci
이미 생성된 DATABASE의 문자셋 바꾸기
mysql> SET character_set_client = utf8; mysql> SET character_set_results = utf8; mysql> SET character_set_connection = utf8; mysql> ALTER DATABASE [DB명] DEFAULT CHARACTER SET utf8;
이미 데이터가 들어간 테이블의 문자셋 변환
create table test (merong varchar(20) collate latin1_general_ci); 이렇게 만들어진 테이블에 한글 데이터를 넣은 후 필드를 euckr 로 변경하려면 다음처럼 해야 합니다. alter table test modify merong binary(100); alter table test modify merong varchar(20) collate euckr_korean_ci; binary 로 바꾸면 문자셋 특성이 사라지기 때문에 이런 변환과정을 거쳐야 합니다(메뉴얼에 의하면). 그냥 바꾸면 문자들이 손상됩니다.참조 : Database.sarang.net에 올라온 글