decode
(아니 encode
) 바이트 문자열에서 유니 코드 문자열을 얻으려면.
>>> s = '\xd0\xbc\xd0\xb0\xd1\x80\xd0\xba\xd0\xb0'
>>> us = s.decode('utf-8')
>>> print us
марка
ASCII 외부의 문자가 포함되어 있기 때문에 print
수 없으므로 유의하십시오. 그러나 유니 코드 인식 디버거에서 그 값을 볼 수 있어야합니다. 위의 것을 IDLE에서 실행했습니다.
업데이트
당신이 실제로있는 것은이 보인다 :
>>> s = u'\xd0\xbc\xd0\xb0\xd1\x80\xd0\xba\xd0\xb0'
이것은 당신이 먼저 decode
를 호출하기 전에 bytestring에 그 바이트를 얻을 수 있기 때문에 까다 롭습니다. 나는 그것을 할 수있는 "최고"방법이 무엇인지 모르겠지만,이 작품 : 당신은 문자열로 데이터베이스에 저장 전에 물론 그것을 디코딩해야
>>> us = ''.join(chr(ord(c)) for c in s).decode('utf-8')
>>> print us
марка
참고.
감사합니다. 디코딩을 시도했을 때 "UnicodeEncodeError : 'ascii'코덱은 0-9의 문자를 인코딩 할 수 없습니다 : 서수는 범위가 아닙니다 (128). 문자열이 'u \ xd0 \ xbc \ xd0 \ xb0 \ xd1 \ x80 \ xd0 \ xba \ xd0 \ xb0'으로 표시 되었기 때문에 가능합니다. –
'print s.encode ('latin1 '). decode ('utf8 ')' 나를 위해 일했다. –