Javascript unescape()
페이지 정보
작성자 서방님 댓글 0건 조회 72회 작성일 20-07-28 15:53본문
#파이썬 3.4 사용, 인코딩은 utf-8.
자바스크립트의 escape()함수로 인코딩한 결과를 파이썬에서 디코딩하려면?
영문자/숫자/특수문자는 urllib.parse.unquote(s)로 해결.
encodeURIComponent() 함수로 인코딩한 결과도 urllib.parse.unquote(s)로 해결.
<예제>
document.write(escape('우리나라') )
=> 결과 : %uC6B0%uB9AC%uB098%uB77C
* 자바스크립트로 디코딩하면
document.write(unescape('%uC6B0%uB9AC%uB098%uB77C') )
=> 결과 : 우리나라
* 파이썬으로 디코딩하려면
자바스크립트로 escape('우리나라')한 결과를
파이썬에서 디코딩하려면 %가 \\로 변환된 상태면 자동으로 변경된다.
print('\uC6B0\uB9AC\uB098\uB77C')
#결과: '우리나라'
그래서 단순하게 생각해서 replace('%u',r'\u') 하여 시도했던 방법. 모두 XXX.
몇시간 구글 검색한 결과 드디어 해결방안을 찾음!!!
str = '%uC6B0%uB9AC%uB098%uB77C' #우리나라
str = re.sub(r'%u([a-fA-F0-9]{4}|[a-fA-F0-9]{2})', lambda m: chr(int(m.group(1), 16)), str)
print(s)
#또는
str = ("".join([(len(i)>0 and chr(int(i,16)) or "") for i in str.split('%u')]))
print(s)
<참고>
http://stackoverflow.com/questions/23158822/javascript-unescape-vs-python-urllib-unquote
http://en.wikipedia.org/wiki/Percent-encoding#Non-standard_implementations
댓글목록
등록된 댓글이 없습니다.