Ajax 한글 깨지지 않게 하는 방법을 알아 봅시다~!

· 19년 전 · 6879
아래 Ajax 소개 사이트 글에 보시면 알겠지만 ...... Ajax 게시판.....

http://hooriza.com/sample/ajaxboard/

위에 게시판도 마찬가지로...한글이 깨지지 않게 하는 방법을 알려 주는 내용입니다~!
제가 글을 쓴것은 아니고여~! Phpschool의 김진영님의 글을 가져 온 것입니다~!
위에 링크도 시켜 드렸구여~! 맨아래 출처를 표기 했으니 가서 글을 보시는것도
도움이 되실 수 있을것으로 보입니다~! ^^* 열공 Ajax 하시길 ㅋㅋ

----------------------------------------------------------------------------------------------------------------------------
MSIE에서 XMLHTTPRequest를 사용해 보려고 하는데, 클라이언트에서 POST 방식으로 보낸 인자의 한글이 서버에서 깨져서 나옵니다. 원래 서버 및 페이지에서 EUC-KR을 사용했는데, 이게 원인인가 싶어서 UTF-8로 바꾼(php.ini의 default_charset) 후에도 여전히 깨지는군요. ( 하하하 => %uD558%uD558%uD558 )

요청을 받는 서버쪽 php 페이지에서 출력한 한글이 다 깨지는 것으로 보아, XMLHTTPRequest에서 한글 텍스트를 어떻게 하는 것 같은데요, FireFox에서도 깨지는 것으로 보아, MSXML의 문제도 아닌 것 같습니다.

XMLHTTPRequest를 이용하여 POST방식의 한글 인자를 서버로 넘기는 데에 성공하신 분, 답변 부탁드립니다.. ^^;

### 클라이언트 요청의 HTTP Header ###
POST /dev/mykms/conversion_handle.php HTTP/1.1
Accept: */*
Accept-Language: ko
Referer: http://www.myleo.net:800/dev/mykms/index.php?location=3&action=edit&id=16
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Host: www.myleo.net:800
Content-Length: 154
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: myleo_no=1; myleo_id=jykim; myleo_name=%B1%E8%C1%F8%BF%B5; clickedFolder=FD_16%5E; highlightedTreeviewLink=FD_16; user_id=%B1%E8%C1%F8%BF%B5; user_status=A; user_email=jykim%40myleo.net; user_admin=Y; user_number=1; user_name=%B1%E8%C1%F8%BF%B5; user_phone_c=016-682-0298

pageContent=Testing%20Purpose%0D%0A%0D%0A%20*%20%uD558%uD558%uD558%0D%0A%20*%20%uD638%uD638%uD638%0D%0A%20*%20%uD55C%uAE00%uC774%20%uB41C%uB2E4.&ruleCode=

### 서버 응답의 HTTP Header ###

HTTP/1.1 200 OK
Date: Wed, 21 Sep 2005 04:17:36 GMT
Server: Apache/2.0.54 (Unix) PHP/5.0.4
X-Powered-By: PHP/5.0.4
Content-Length: 102
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8


Testing Purpose

* %uD558%uD558%uD558 (원래 하하하)
* %uD638%uD638%uD638 (원래 호호호)
* %uD55C%uAE00%uC774 %uB41C%uB2E4.




김진영 05-09-21 13:30
문제를 약간 돌려서 해결하자면, XMLHTTPRequest에 넘기는 한글을 아스키로 인코딩하거나, %uD558%uD558%uD558 와 같은 메시지를 디코딩하면 될 것 같은데, 이 방법을 아시는 분 답변주세요.. ^^;;

문제를 약간 돌려서 해결하자면, XMLHTTPRequest에 넘기는 한글을 아스키로 인코딩하거나, %uD558%uD558%uD558 와 같은 메시지를 디코딩하면 될 것 같은데, 이 방법을 아시는 분 답변주세요.. ^^;;

김진영 05-09-21 13:57
더 찾아보니 x-www-form-urlencoded라는 방식으로 POST로 넘긴 모든 값이 인코딩된다고 하는군요..

더 찾아보니 x-www-form-urlencoded라는 방식으로 POST로 넘긴 모든 값이 인코딩된다고 하는군요..

김소하 05-09-21 14:06
저도 한글 때문에 고민했다가 이렇게 해결한 적이 있네요...

보내는 페이지에선
자바스크립트로 문자열을 encodeURIComponent(str) 이런식으로 변환해서 넘기고..

받는 PHP페이지에선
$str = iconv("UTF-8", "CP949", $_POST[str]); 이런 식으로 처리해보세요.

저도 한글 때문에 고민했다가 이렇게 해결한 적이 있네요...

보내는 페이지에선
자바스크립트로 문자열을 encodeURIComponent(str) 이런식으로 변환해서 넘기고..

받는 PHP페이지에선
$str = iconv("UTF-8", "CP949", $_POST[str]); 이런 식으로 처리해보세요.

바람이 05-09-21 14:31
즉, xmlhttp는 유니코드를 지원하므로...받을때 //김소하님처럼 하면 되겠죠...

즉, xmlhttp는 유니코드를 지원하므로...받을때 //김소하님처럼 하면 되겠죠...

김진영 05-09-21 19:14
감사합니다~ 덕분에 해결했습니다~

감사합니다~ 덕분에 해결했습니다~

엘리 06-02-27 13:20
뷁, 샾, 똠 같은 문자가 CP949썼더니 잘 되네요..
감사합니다. 그리고 encodeURIComponent로 인해 특수문자 사용까지 되고요..
김소하님 정말 감사드립니다.
-------------------------------------------------------------------------------------------------------------------------
출처 : http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_html&wr_id=60301<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 16:55:28 jQuery에서 이동 됨]</div>
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

+
제목 글쓴이 날짜 조회
19년 전 조회 2,511
19년 전 조회 2,408
19년 전 조회 2,212
19년 전 조회 2,673
19년 전 조회 2,603
19년 전 조회 2,970
19년 전 조회 2,354
19년 전 조회 3,671
19년 전 조회 2,146
19년 전 조회 2,753
19년 전 조회 1,769
19년 전 조회 3,004
19년 전 조회 3,243
19년 전 조회 2,331
19년 전 조회 2,170
19년 전 조회 2,648
19년 전 조회 2,577
19년 전 조회 3,256
19년 전 조회 6,946
19년 전 조회 2,889
19년 전 조회 3,362
19년 전 조회 3,258
19년 전 조회 2,098
19년 전 조회 3,516
19년 전 조회 2,349
19년 전 조회 2,879
19년 전 조회 2,521
19년 전 조회 4,542
19년 전 조회 2,654
19년 전 조회 2,929
19년 전 조회 3,677
19년 전 조회 3,889
19년 전 조회 3,428
19년 전 조회 2,637
19년 전 조회 3,213
19년 전 조회 4,072
19년 전 조회 3,945
19년 전 조회 1,882
19년 전 조회 2,374
19년 전 조회 5,585
19년 전 조회 6,881
19년 전 조회 2,726
19년 전 조회 2,288
19년 전 조회 2,766
19년 전 조회 3,437
19년 전 조회 3,674
19년 전 조회 3,148
19년 전 조회 2,771
19년 전 조회 4,875
19년 전 조회 6,880
19년 전 조회 5,165
19년 전 조회 6,127
19년 전 조회 2,846
19년 전 조회 2,668
19년 전 조회 2,375
19년 전 조회 2,475
19년 전 조회 4,772
19년 전 조회 4,834
19년 전 조회 2,692
19년 전 조회 2,341
19년 전 조회 2,680
19년 전 조회 3,310
19년 전 조회 3,091
19년 전 조회 2,071
19년 전 조회 2,136
19년 전 조회 3,315
19년 전 조회 2,523
19년 전 조회 3,785
19년 전 조회 2,731
19년 전 조회 2,026
19년 전 조회 2,639
19년 전 조회 1,889
19년 전 조회 1,579
19년 전 조회 1,698
19년 전 조회 1,984
19년 전 조회 1,739
19년 전 조회 1,943
19년 전 조회 1,737
19년 전 조회 2,131
19년 전 조회 2,013
19년 전 조회 1,624
19년 전 조회 1,627
19년 전 조회 1,516
19년 전 조회 1,402
19년 전 조회 1,576
19년 전 조회 2,149
19년 전 조회 2,554
19년 전 조회 3,063
19년 전 조회 2,476
19년 전 조회 1,980
19년 전 조회 7,192
19년 전 조회 3,893
19년 전 조회 2,503
19년 전 조회 2,525
19년 전 조회 3,017
19년 전 조회 5,943
19년 전 조회 5,742
19년 전 조회 2,412
19년 전 조회 3,467
19년 전 조회 3,030