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

euc-kr페이지에서 AJAX연동시 한글 깨짐 현상 해결법 입니다.

· 9년 전 · 462

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);

댓글 작성

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

로그인하기

게시글 목록

번호 제목
27980
7164
31729
31726
31725
31720
31711
7159
27974
19734
19730
19729
27969
7142
19728
19725
7130
19722
19719
7124
19718
19717
19716
19715
7122
30959
19714
31710
31709
19713
7117
19712
7111
31708
31707
19710
31706
31705
31704
19709
19707
31703
19706
31702
19705
31701
19704
31700
31699
31698
7107
19703
31697
31696
19702
19701
31695
27965
31694
19700
31693
19699
31692
31691
19698
19697
19696
19694
19693
19692
19691
19690
19689
19688
19687
7105
30955
7100
19681
7097
19678
7089
7086
7084
7082
19677
30953
7080
7077
7071
7070
7066
19676
19674
27961
7063
7061
19669
7060
20842