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 기본 설정이라 문제가 없겠지만, 옛날 시스템이나 파일 - 디비 연결의 경우에는 인코딩 자체가 달라서 방법을 좀 생각해 봐야 함.
'프로그램' 카테고리의 다른 글
Javascript 는, switch ~ case 에 문자열 비교가 된다. (0) | 2014.03.05 |
---|---|
웹호스팅에서 phpmyadmin 을 직접 지원해 주기도 한다. (0) | 2014.02.20 |
javascript location.href vs location.assign vs location.replace (0) | 2013.11.22 |
cafe24 에 접속이 안 될 때. (0) | 2013.11.08 |
centos 에서 curl 설치 + 사용 (0) | 2013.11.01 |