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

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

· 14년 전 · 2089
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>

댓글 작성

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

로그인하기

게시글 목록

번호 제목
14699
2648
14695
2643
14694
2634
24207
29791
14692
29790
29789
29786
14689
26002
25999
25998
25994
2628
14688
2624
14686
14682
14676
14673
14670
14666
14660
29785
14658
14657
2606
14654
14651
14647
2578
14645
2568
14643
24199
2559
2539
14640
2536
14639
25989
14636
14633
29783
25982
2531
25981
25980
25979
24196
24193
24191
2526
14629
2525
2524
2522
2519
25977
2516
25964
24187
14621
14614
25956
25955
14609
14602
25953
14599
14596
14595
14594
29782
2499
2484
24180
14592
25952
2478
2466
2460
2459
14589
2456
2436
2420
2403
2397
29778
2393
14586
2387
2384
14581
2381