프로그램

mysql connection string for UTF-8.

(주)CKBcorp., 2013. 12. 15. 06:30
반응형


mysql 을 연결해서 쓸 때, query string 의 문자열을 UTF-8 로 지정하고 싶을 때가 있을거다.


예를 들어 insert 문 같은 경우에


"insert into table1 ( field1 ) values ( '가나다' )"


뭐 이런거 실행시키고 싶은 경우.


이런 때 보통은( = 예전에 나는 ) '가나다' 라는 문자열을 IO 등을 통해 가져온 다음에 메모리에서 utf-8 로 인코딩한 후 sql 문자열을 다시 조립해서 넣어줬는데, 그럴 필요없이 DB connection 연결할 때 연결 문장에 charset 을 선언해 주면 된다.


그래서... connection string 선언의 경우에


함수를 쓰는 컴파일 형태의 mysql 이라면 


        MYSQL *conn;

...

        conn = mysql_init( NULL );

...

        mysql_options( conn, MYSQL_SET_CHARSET_NAME, "utf8" );

        mysql_options( conn, MYSQL_INIT_COMMAND, "SET NAMES utf8" );

...

        mysql_real_connect( conn, ... );

...



connection string 을 문자열로 사용하는 mysql 이라면 


"Server=localhost;Port=xxxx;Database=xxx;Uid=xxx;Pwd=xxxx;charset=utf8;"




아. 이렇게 connection string 의 charset 을 선언할 때 주의할 점이 있는데,

이거 쓰고 디비에 쓰고 읽을 입출력 데이터에 대해서는 인코딩/디코딩을 안 할 거라면, 양쪽 디비의 언어 설정이 같아야 한다. 예를들어 둘 다 euc-kr 이라던가, 둘 다 utf-8 이라던가...


요즘은 대부분이 utf-8 기본 설정이라 문제가 없겠지만, 옛날 시스템이나 파일 - 디비 연결의 경우에는 인코딩 자체가 달라서 방법을 좀 생각해 봐야 함.





 




반응형