Javascript unescape() > python

본문 바로가기
사이트 내 전체검색

python

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



 

댓글목록

등록된 댓글이 없습니다.

Total 15건 1 페이지
게시물 검색

회원로그인

접속자집계

오늘
48
어제
76
최대
1,347
전체
153,754
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.