아주 쉽다.
(1) 일반적인 Json 한글 출력방법
1 <? 2 require_once "/home/srzero/public_html/airman/wpc/var/global.var.php"; 3 4 $query="SELECT good.goodsno,link.category,good.goodsnm FROM gd_goods_link link,gd_goods good WHERE link.goodsno = good.goodsno AND good.open=1 AND link.category LIKE '".$category."%' ORDER BY goodsno asc"; 5 6 $result = db_query($query,$DB_CONNECT); 7 8 $rows = array(); 9 10 $i = 0; 11 while($r= db_fetch_array($result)){ 12 $rows[] = urlencode($r[goodsnm]); 13 } 14 15 $json_result = json_encode($rows); 16 echo urldecode($json_result); 17 18 ?> |
urlencode / urldecode를 번갈아가며 사용해야지만, 한글이 제대로 출력이 된다.
(2) Ajax 호출시 Json 한글출력법
(2-1) 호출페이지 소스
function makeProductList(){ var form = document.frmMember; param = "category="+$("select[name=product_step_one]").val() $.ajax({
} |
(2-2) Json 응답 페이지
<? header("Content-Type: text/html;charset=euc-kr"); $query="SELECT good.goodsno,link.category,good.goodsnm FROM gd_goods_link link,gd_goods good WHERE link.goodsno = good.goodsno AND good.open=1 AND link.category LIKE '".$category."%' ORDER BY goodsno asc"; $result = db_query($query,$DB_CONNECT); $rows = array(); $i = 0; echo json_encode($rows); ?> |
위 소스에서 보면 header 값의 Content-Encoding을 셋팅하게 되어있다. 저걸 셋팅안해주면 아래 소스에서
enncode_utf8을 하였다고 하더라도 , 결국 Ajax는 euc-kr로 응답받게 된다.
결국 소스의 최종 goal은 header를 바꾸어주느냐 마느냐에 있는 것이다.
'Program > PHP' 카테고리의 다른 글
[ PHP 파라미터 출력하여 알아보는 방법 ] (0) | 2011.05.30 |
---|---|
[ PHP 에서 DB결과 처음포인터 위치하기 ] (0) | 2010.08.28 |
[ JQuery Ajax + PHP 한글 처리문제 해결방법 ] (0) | 2010.07.20 |
[ PHP E-mail 전송 ] (6) | 2010.07.03 |
PHP Excel Download Module (21) | 2010.06.22 |