2012-04-22 3 views
48

가능한 복제를 유니 코드 :
How do I treat an ASCII string as unicode and unescape the escaped characters in it in python?
How do convert unicode escape sequences to unicode characters in a python string파이썬 문자열은

나는 예를 들어, 유니 코드 문자가 포함 된 문자열을 \u2026 등등. 어쨌든 unicode으로받은 것이 아니라 str으로받습니다. 유니 코드로 다시 변환하려면 어떻게해야합니까?

>>> a="Hello\u2026" 
>>> b=u"Hello\u2026" 
>>> print a 
Hello\u2026 
>>> print b 
Hello… 
>>> print unicode(a) 
Hello\u2026 
>>> 

분명히 unicode(a)은 답변이 아닙니다. 그럼 뭐야?

+1

태그는 그렇게 말하고 있지만 더 명확하게 지적하기 위해이 질문은 3.x가 아닌 python 2.x에 초점을 맞 춥니 다. – Adam

답변

68

유니 코드는 유니 코드 문자열에서 작동 탈출 그래서이

a="\u2026" 

실제로 6 문자열입니다 : '\', 'U', '2', '0', '2', ' 6 '. unicode-escape 코덱으로

a="\u2026" 
print repr(a) 
print repr(a.decode('unicode-escape')) 

## '\\u2026' 
## u'\u2026' 
24

디코드 그것은 :

이에서 유니 코드를하려면 decode('unicode-escape')를 사용

>>> a="Hello\u2026" 
>>> a.decode('unicode-escape') 
u'Hello\u2026' 
>>> print _ 
Hello… 

비 유니 코드 문자열에 대한 \u2026 인식하지 못하기 때문입니다하지만, 그 대신 문자 그대로 일련의 문자로 처리됩니다 (더 명확하게하려면 'Hello\\u2026'). 탈출구를 해독해야하며 unicode-escape 코덱을 사용하면 문제를 해결할 수 있습니다. 당신이 코덱 인수를 지정하여 같은 방법으로 그것을 인식 unicode를 얻을 수 있습니다

참고 :

>>> unicode(a, 'unicode-escape') 
u'Hello\u2026' 

그러나 a.decode() 방법은 좋네요.

16
>>> a="Hello\u2026" 
>>> print a.decode('unicode-escape') 
Hello…