예를 들어, 나는 같은 인코딩 된 문자열이있는 경우 : 이름 매개 변수가 실제로 문자 é를 함축 문자 %의 C3의 %의 A9를 가지고파이썬의 URL 인 코드/디코드 - % 문자열로 16 진수를 탈출 변환
url='locality=Norwood&address=138+The+Parade®ion=SA&country=AU&name=Pav%C3%A9+cafe&postalCode=5067'
을 .
따라서, 나는 것으로 출력을 싶습니다 그러나
>>> import urllib2
>>> url='locality=Norwood&address=138+The+Parade®ion=SA&country=AU&name=Pav%C3%A9+cafe&postalCode=5067'
>>> new_url=urllib2.unquote(url).decode('utf8')
>>> print new_url
locality=Norwood&address=138+The+Parade®ion=SA&country=AU&name=Pavé+cafe&postalCode=5067
>>>
, 나는 내에서 같은 일을 시도 :
new_url='locality=Norwood&address=138+The+Parade®ion=SA&country=AU&name=Pavé+cafe&postalCode=5067'
가 나는 파이썬 터미널에서 다음 단계를 시도 파이썬 스크립트 그리고 myscript.py로 실행하면 다음 스택 추적을 얻게됩니다.
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 88: ordinal not in range(128)
저는 파이썬 2.6.6을 사용하고 있으며 작업상의 이유로 다른 버전으로 전환 할 수 없습니다.
이 오류를 어떻게 극복 할 수 있습니까?
도움을 주시면 대단히 감사하겠습니다. 미리 감사드립니다!
######################################################
편집은 내가 위의 예상 출력을 얻고 있음을 깨달았다.
그러나 new_url의 매개 변수를 다음과 같이 사전으로 변환하고 싶습니다. 이렇게하는 동안, 나는 특수 문자 'é'를 내 이름 매개 변수로 유지할 수 없다.
print new_url
params_list = new_url.split("&")
print(params_list)
params_dict={}
for p in params_list:
temp = p.split("=")
params_dict[temp[0]] = temp[1]
print(params_dict)
출력 :
NEW_URL
지역 = 노 우드 & 주소 = 138 +의 + 퍼레이드 & 지역 = SA & 국가 = AU & 이름 = 포장 + 카페 &을 PostalCode = 5067
params_list
[u'locality = Norwood ', u'address = 138 + The + Parade', u'region = SA ', u'country = AU', u'name = Pav \ xe9 + cafe ' = 5067 u'postalCode ']
params_dict
{u'name'u'Pav \ xe9 + 카페 'u'locality'u'Norwood 'u'country'U를 'AU', u'region ': u'SA', u'address ': u'138 + The + Parade', u'postalCode ': u'5067'}
기본적으로 이름은 지금입니다. 'Pav \ xe9 + cafe'(필수 'Pavé'와 반대).
params_dict에서 같은 특수 문자를 계속 유지하려면 어떻게해야합니까?
오류를 재현하지 못했습니다. 터미널과 스크립트에서 동일한 코드를 사용하고 있습니까? –
@ machineyearning 정확합니다. 내 실제 문제에 대한 편집을 확인하십시오. – activelearner