테스트 사이트 - 개발 중인 베타 버전입니다

[펌] euc-kr페이지에서 AJAX연동시 한글 깨짐 현상(php)

· 14년 전 · 2088
AJAX는 기본적으로 UTF-8 인코딩을 사용하기 때문에
인코딩이 euc-kr(KSC5601)인 페이지에서 ajax를 사용하게 되면 한글이 깨지게 된다.

이러한 현상을 해결하기 위해서는 통신 시 적절한 변환처리가 필요하다.

페이지에서 요청을 보낼 때
var val = encodeURIComponent("한글");
/*
값을 UTF-8 형식으로 인코딩 해 준다. "한글" 이라는 문자열은 0xED959C, 0xEAB880이므로 val에는 %ED%95%9C%EA%B8%80이라는 문자열이 들어간다.
*/

PHP에서 받을 때
$value = iconv("UTF-8", "CP949", rawurldecode($value));
/*
http://www.php.net/manual/en/function.rawurldecode.php
먼저 %로 구분된 문자열을 디코딩한다. 이것의 결과는 UTF-8 문자열이 되며,
iconv를 사용하여 euc-kr문자열로 변환하여 준다.
*/


PHP에서 페이지로 보낼때는 반대로 해 주면 된다.
PHP에서 보낼 때
$value = rawurlencode(iconv("CP949", "UTF-8", $value));

페이지에서 받을 때
val = decodeURIComponent(val);



참고로,
스크립트에서 XML노드의 텍스트를 담고 있는 속성은
IE에서는 노드.text 이지만 FF에서는 노드.textContent 이다.<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 16:57:14 JavaScript에서 이동 됨]</div>

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
26049
2886
14815
14808
29814
14807
2883
2879
2867
2863
14798
14797
2858
14790
2852
14788
14787
2843
2838
14785
14781
2834
14780
2830
14779
24227
14778
29812
2818
14773
2815
14772
29811
24214
14767
14762
14760
14758
24212
26043
14757
2807
2791
2783
14755
14753
2774
2767
14749
2756
2751
2750
14748
14747
29809
29808
29807
14746
29806
29804
29802
2740
2732
14745
26037
26031
2726
29797
2724
2712
2692
14742
14741
14740
14739
14737
29795
2687
14732
26025
14730
26020
26017
14729
14723
14722
2680
26009
24211
14721
2677
14720
14715
2660
14711
14704
2657
2653
14703
14701