2009. 6. 26. 10:10 PROGRAMMING
php urlencode, urldecode, mb_convert_encoding utf8 쿼리스트링
euc-kr의 페이지에서 utf-8페이지를 iframe으로 열고 변수를 전달해야할 때
urlencode같은 함수를 사용하면 글자들이 %를 포함하기때문에 sql에선 사용할수 없습니다.
고로, mysql 쿼리를 때리기 위해 순수한 utf8 한글로 변형해야 합니다.

1. 쿼리값을 디코딩한다. 그러면 디코딩은 되었지만, 출력해보면 utf-8페이지이기때문에 깨진 글자가 나올겁니다.
2. euc-kr을 utf-8로 인코딩한다.
3. mysql 쿼리실행
$keyword=$_REQUEST[q];
$keyword=urldecode($keyword);
$keyword=mb_convert_encoding($keyword,"UTF-8","EUC-KR");
or
$keyword=mb_convert_encoding(urldecode($_REQUEST[q]),"UTF-8","EUC-KR");
using
$sql="SELECT * FROM [table] WHERE [column] LIKE '%".$keyword."%'";


euc-kr에서 utf8로 변환
$STRING=mb_convert_encoding($STRING,"UTF-8","EUC-KR");


utf8에서 euc-kr로 변환
$STRING=mb_convert_encoding($STRING,"EUC-KR","UTF-8");


관련함수
utf8_encode, utf8_decode, base64_encode, base64_decode, rawurlencode, rawurldecode, urlencode, urldecode, parse_url,
mb_convert_encoding, mb_detect_encoding, mb_convert_variables...

최근에 올라온 글

최근에 달린 댓글