DB에 UTF8로 데이터가 저장돼있다고 가정하자.
DB에 접속한 뒤 PHP에서 인코딩 설정을 해 주지 않으면,
PHP는 DB에 입력된 자료가 latin1이라고 이해한다.(PHP Version 5.2.6 이다.)
따라서 PHP한테 말해줘야 한다. “네가 가져온 데이터는 UTF8로 돼있는 거야!” 하고 말이다.
코드는 다음과 같다.
$db = new mysqli('localhost','DB아이디','DB비밀번호','DB이름');if(mysqli_connect_errno()){ echo "error 났음!"; //여기엔 당연히 에러 났을 때 처리를 적어 줘야 할 것이다. 지금은 생략한다.}//여기부터가 인코딩 세팅 부분이다. 코드는 PHP홈페이지에서 가져와 사용했다.//주의할 점은 utf-8이 아니라 utf8로 적어야 한다는 점이다.(euc-kr도 euckr로 적어야 합니다.)if ( !$db->set_charset("utf8") ) { printf("utf8 문자 세트를 가져오다가 에러가 났습니다 : %s\n", $db->error);} else { printf("현재 문자 세트 : %s\n", $db->character_set_name()); //위 코드를 분석해 보면 알겠지만, character_set_name()은 PHP가 DB 인코딩을 뭘로 이해하고 있는지 가져오는 메서드다.} |
참고 : http://www.php.net/manual/kr/mysqli.set-charset.php
출처 : 녹풍님 블로그 http://mytory.co.kr/archives/5
댓글 없음:
댓글 쓰기