유니 코드 문자가 포함 된 문자열이 있습니다 (예 : \u2026
등). 어떻게 된 일인지 유니코드
로 수신되지 않고 str
으로 수신됩니다. 어떻게 다시 유니코드로 변환하나요?
>>> a="Hello\u2026"
>>> b=u"Hello\u2026"
>>> print a
Hello\u2026
>>> print b
Hello…
>>> print unicode(a)
Hello\u2026
>>>
분명히 유니코드(a)
는 답이 아닙니다. 그렇다면 무엇이 정답일까요?
유니코드-이스케이프` 코덱으로 디코딩합니다:
>>> a="Hello\u2026"
>>> a.decode('unicode-escape')
u'Hello\u2026'
>>> print _
Hello…
이는 유니코드가 아닌 문자열의 경우 \u2026
이 인식되지 않고 리터럴 문자 계열로 취급되기 때문입니다(더 명확하게 말하면 'Hello\\u2026'
). 이스케이프를 디코딩해야 하는데, '유니코드-이스케이프' 코덱이 이를 대신해 줍니다.
코덱 인수를 지정하여 같은 방법으로 유니코드
가 이를 인식하도록 할 수도 있습니다:
>>> unicode(a, 'unicode-escape')
u'Hello\u2026'
하지만 a.decode()
방식이 더 좋습니다.