ASP(Server.UrlEncode), PHP(urlencode()) 함수 또는 asp, php 등의 동적 언어를 통해 COOKIES에 직접 작성한 한자의 인코딩 결과를 JS로 읽어오면 인코딩이 발생하게 됩니다. 즉, 최종 문자열이 urlencode로 인코딩되어 클라이언트 측에서 JS의 데이터를 읽어야 하는 경우가 있습니다.
이 글에서는 js에서 이 문제를 시스템 자체 기능을 통해 어떻게 해결하는지 간략하게 설명하겠습니다.
이 문제를 겪은 친구들은 어느 정도 이해해야 한다고 생각합니다. 현재 이 문제를 해결하기 위해 vbscript(URLDecode()), javascript(UrlDecode( ))기다리다. 이 두 함수 중 어느 것도 asp(Server.UrlEncode) 및 php(urlencode())와 잘 통신할 수 없습니다.
vbscript(함수 URLDecode()) 및 javascript(함수 UrlDecode())에 대한 내용도 이 글의 마지막 부분에 재현됩니다.
이 글의 주인공은 javascript(UrlDecodedecodeURIComponent())입니다. 이 함수 이름은 너무 흔해서 개인적으로는 잘 이해가 안 되네요. 그리워요. 우연히 이 기능을 발견한 Worry!
인코딩 함수: encodeURIComponent()
디코딩 함수: decodeURIComponent()
decodeURIComponent() 구문
decodeURIComponent(URIstring)
매개변수: (URIstring)이 필요합니다. 인코딩된 URI 구성 요소 또는 디코딩할 기타 텍스트가 포함된 문자열입니다.
반환 값: 16진수 이스케이프 시퀀스가 해당 시퀀스가 나타내는 문자로 대체되는 URIstring의 복사본입니다.
예:
< ;script type="text/javascript">
var test1="Trouble";
var test2="Trouble"
document.write("인코딩(original=" test1 ") :" encodeURIComponent (test1) "
");
document.write("Decode (original =" test2 "): " decodeURIComponent(test2));
결과:
인코딩(original=Trouble):문제
디코딩(original=Trouble):문제
참고: 이 문서는 UTF-8 인코딩 환경에서만 테스트되었습니다. 왜냐하면 다른 인코딩 환경에서는 asp(Server.UrlEncode)의 컴파일된 코드가 다른 것처럼 보이고 테스트가 필요하기 때문입니다!
첨부된 재판본:
vbscript(function URLDecode())
javascript(함수 UrlDecode())其实还是柔和使用了vbscript,好image在javascript环境中,对于asc、hex、chr상关的转换,如 str.charCodeAt(0).toString(16 ) 及 String.fromCharCode(str) 는 동일하지 않습니다.复代码
代码如下:
javascript str2asc/asc2str
复代码
代码如下:
演示:
[Ctrl A 전체选 注:]