2013. 11. 13. 23:19
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

utf-8 웹페이지에 KCP 전자결제 시스템 구축중 한글을 전송하는 과정에서 문제가 발생합니다.
KCP ( 올더게이트 등 )은 euc-kr 데이타로 결제과정이 진행되기 때문입니다.
이때 한글을 escape 함수를 이용해서 암호화 형태로 변형해서 KCP에 전송후 리턴된 한글을 다시 unescape 함수를 이용해서 원래 한글로 되돌려 Database에 저장합니다.


용어설명
  인코딩 : 정보를 부호화/암호화
  디코딩 : 그 부호화/암호화를 해제


<% @LANGUAGE='VBscRIPT' CODEPAGE='65001' %>
< %
response.CharSet = "utf-8"
response.write "인코딩 = "& escape("해피정닷컴") &"<br />"
response.write "디코딩 = "& unescape("%uD574%uD53C%uC815%uB2F7%uCEF4") &"<br />"
%>


결과
인코딩 = %uD574%uD53C%uC815%uB2F7%uCEF4
디코딩 = 해피정닷컴


url을 client에서 server로 넘길 때 escape sequence로 넘겨야 client에서 넘긴 url을 제대로 받을 수 있기 때문에 사용합니다.
그러면, 비슷 비슷한 이 세 함수들의 차이점을 알아봅니다.
 
1. escape() :
"+" 문자를 server쪽에서 공백(space)으로 처리하고, 실제 공백(space)문자도 공백으로 처리하기 때문에, 이 escape()함수는 non-ASCII 문자들을 정확하게 처리하지 못합니다.
따라서 이런 escape()의 문제점을 피하기 위한 최선의 선택은 거의 모든 non-ASCII 문자들 까지 encode 해주는 "encodeURIComponent()"를 사용하는 것입니다.

1-1. escape()가 encode 하지 못하는 문자들 : @*/+


2. encodeURI() :
이 함수는 "'"(외 따옴표) 문자를 encode 하지 않습니다. URI에서 valid한 문자로 사용되기 때문입니다.

2-1. encodeURI()가 encode 하지 못하는 문자들 : ~!@#$&*()=:/,;?+'

 
3. encodeURIComponent() :
최근에, encodeURIComponent()함수는 대부분의 경우에 URI를 인코딩 할 때 사용 됩니다.
이 함수는 대부분의 문자들을 인코딩 합니다.
이 함수는 "'"(외 따옴표)문자를 encode 하지 않습니다. URI에서 valid한 문자로 사용되기 때문입니다.
 
3-1. encodeURIComponent() 가 encode 하지 못하는 문자들 : ~!*()'



관련자료
http://taeyo.pe.kr/Forum/Content.aspx?SEQ=151401&TBL=ASP
http://blog.naver.com/kolove79/20044205975
http://xkr.us/articles/javascript/encode-compare/

'프로그래밍' 카테고리의 다른 글

[Python] 유닉스 타임  (0) 2016.08.06
[PHP] IF 문법  (0) 2014.11.08
DataTables (table plugin for jQuery) 2. API  (0) 2014.06.26
DataTables (table plugin for jQuery) 1. 기본 Usage  (0) 2014.06.26
부모창 종료시 팝업창 닫기  (0) 2013.11.19
Posted by manacom