[C#] MySQL 데이터 저장시 한글이 깨질 때

C# & MFC

[C#] MySQL 데이터 저장시 한글이 깨질 때

 

환경 : Visual Studio 2012

 

C# 에서 MySQL Connector 다운받아 데이터를 저장하고자 할 때 한글이 깨지는 경우가 있습니다. 아래는 그 해결 방법입니다.

 

먼저 MySQL 셋팅을 바꿔야 합니다. 테이블 생성할 때 와 필드 생성할 때 기본값이 아닌UTF8 로 해줍니다. 기본은 latin1_swedish_ci 로 되어있는데 VARCHAR 이나 TEXT 일때 필드 뿐만 아니라 테이블의 Collation 속성 또한 utf8_general_ci 으로 맞춥니다.

 

[C#] MySQL 데이터 저장시 한글이 깨질 때

 

이제 C# 에서 접속해 데이터를 보낼 때 연결 문자열에 CharSet = utf8 을 추가합니다.

 

String strConn = "Server=localhost;Database=*****;" +
                 "Uid=*****;Pwd=*****;CharSet=utf8;";

 

보내는 곳과 받는 쪽이 같은 인코드를 사용해야 한글이 깨지지 않겠죠. 소스에서 아래 처럼 INSERT 문을 날려 보았습니다. 정상적으로 셋팅이 되었다면 김삿갓이 깨지지 않겠죠.

 

conn.Open();
String sql = "INSERT INTO members (id, pwd, name) " +
                "VALUES ('gon', '111', '김삿갓')";

 

MySQL DB 에 들어가서 보니 깨지지 않고 제대로 들어가 있네요. 이렇게 해서 한글이 깨질 때 처리 하는 방법에 대해 알아 보았습니다.

 

[C#] MySQL 데이터 저장시 한글이 깨질 때

 

Posted by 녹두장군