[python] 파이썬에서 UTF-8로 UTF-8 디코딩

나는 파이썬에서 초보자 인 한 많은 시간을 보냈다.
그런 URL을 어떻게 해독 할 수 있습니까?

example.com?title=%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%B2%D0%B0%D1%8F+%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B0

파이썬 2.7에서 이것에 : example.com?title==правовая+защита

url=urllib.unquote(url.encode("utf8")) 아주 못생긴 것을 반환합니다.

여전히 해결책이 없으며 도움을 주시면 감사하겠습니다.



답변

데이터는 당신이 원하는, 그래서 UTF-8로 인코딩 된 바이트, URL은 인용과 함께 탈출이다 디코딩 으로 urllib.parse.unquote(), 이는 투명, UTF-8 바이트에 다음 텍스트 %로 인코딩 된 데이터로 디코딩 핸들 :

from urllib.parse import unquote

url = unquote(url)

데모:

>>> from urllib.parse import unquote
>>> url = 'example.com?title=%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%B2%D0%B0%D1%8F+%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B0'
>>> unquote(url)
'example.com?title=правовая+защита'

Python 2와 동등한 것은 urllib.unquote()이지만 바이트 문자열을 반환하므로 수동으로 디코딩해야합니다.

from urllib import unquote

url = unquote(url).decode('utf8')


답변

Python 3을 사용하는 경우 사용할 수 있습니다 urllib.parse

url = """example.com?title=%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%B2%D0%B0%D1%8F+%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B0"""

import urllib.parse
urllib.parse.unquote(url)

제공합니다 :

'example.com?title=правовая+защита'


답변