웹 프로젝트를 개발하다보면 인코딩 문제를 자주 만나게 된다.
인터넷에서 URL 처리는 ASCII 캐릭터 셋으로만 처리되기때문에 생기는 문제.
예를들어
http://www.test.com/공지사항.jsp 같은 경우
-> http://www.test.com/%ED%EA%B%80.jsp
이런식으로 깨지는 경우를 자주 봤을 것이다.
이렇게 URL 인코딩 된 문자열을 받는쪽에서 decode 처리하여 원래의 URL을 가져오는게 가능하다.
이럴때 나는 decodeURIComponent() 를 썼다.
원래 주소 : http://localhost:8040/PageLink.do?link=test/business/product/healthcare
1. 변환 안하고 alert을 찍어본다.
//변환하지 않고 테스트
alert(window.location.href);
결과
-> http://localhost:8040/PageLink.do?link=test%2Fbusiness%2Fproduct%2Fhealthcare
'/'문자가 '%2F' 코드로 인코딩되어 있다.
2. 변환하고 alert을 찍어본다.
//변환 후 테스트
alert(decodeURIComponent(window.location.href));
결과
-> http://localhost:8040/PageLink.do?link=test/business/product/healthcare
이와같이 '/' 를 되돌려 반환해주는것을 확인할 수 있다.
해당 메소드는 URL 전체를 디코딩할 경우이고
URL 전체를 인코딩할때는 encodeURIComponent() 이며,
한글 인코딩은 -> encodeURI()
한글 디코딩은 -> decodeURI()
함수를 쓰면 된다고 한다.
사용 목적에 따라 적절하게 쓰면될 듯 하다.
아래 링크는 참고용 ASCII 코드 표 ↓
http://www.w3schools.com/tags/ref_urlencode.asp
'JavaScript' 카테고리의 다른 글
비밀번호 유효성 검사 정규식 (0) | 2020.11.07 |
---|---|
Javascript input text 숫자만 입력 (0) | 2020.11.06 |
문자열의 바이트 수 반환 (0) | 2020.11.06 |
ip 체크 정규식 (0) | 2020.11.05 |
비밀번호 유효성 검사 정규식 (0) | 2020.11.04 |