mysql 서버의 charset 문제로 한글이 깨져 보이는 경우가 있다.
이때, 테이블별로 charset을 변경해줘서 한글이 깨지는 문제를 해결하기 위해 아래와 같이 하면, db전체를 dump받아서 변경하지 않아도 된다. 다만, 변경해야할 table이 많이면 좀 힘들것이다.
가정.
table : university , charset latin1
한글이 깨진 컬럼 : u_name
- 해당 컬럼을 binary 또는 blob 형식을 변경한다. (mysql메뉴얼의 의하면, binary형식으로 별도의 컨버젼이 일어나지 않아서 올바른 형전환을 할수 있다고 한다.... 참고, http://dev.mysql.com/doc/refman/5.1/en/alter-table.html)
- 해당컬럼을 다시 원래의 형식을 변경하고 collate를 원하는 형식으로 지정한다.
- 해당 테이블을 원하는 charset으로 변경한다.
이때, 테이블별로 charset을 변경해줘서 한글이 깨지는 문제를 해결하기 위해 아래와 같이 하면, db전체를 dump받아서 변경하지 않아도 된다. 다만, 변경해야할 table이 많이면 좀 힘들것이다.
가정.
table : university , charset latin1
한글이 깨진 컬럼 : u_name
- 해당 컬럼을 binary 또는 blob 형식을 변경한다. (mysql메뉴얼의 의하면, binary형식으로 별도의 컨버젼이 일어나지 않아서 올바른 형전환을 할수 있다고 한다.... 참고, http://dev.mysql.com/doc/refman/5.1/en/alter-table.html)
- 해당컬럼을 다시 원래의 형식을 변경하고 collate를 원하는 형식으로 지정한다.
- 해당 테이블을 원하는 charset으로 변경한다.
ex)
alter table university modify u_name blob;
alter table university modify u_name varchar(150) collate euckr_korean_ci;
alter table university convert to charset euckr;
이렇게 한후 조회를 해보면, 한글이 잘 보일것이다.