유니코드 이스케이프 시퀀스를 파이썬 문자열의 유니코드 문자로 변환하는 방법
-
13-09-2019 - |
문제
"unicode(head.contents[3])"를 사용하여 태그의 내용을 가져오려고 하면 다음과 유사한 출력이 표시됩니다."크리스텐슨 Sk\xf6ld".이스케이프 시퀀스를 문자열로 반환하고 싶습니다.파이썬에서는 어떻게 하나요?
해결책
Python이 이름을 일반 문자열로 인식한다고 가정하면 먼저 이름을 유니코드로 디코딩해야 합니다.
>>> name
'Christensen Sk\xf6ld'
>>> unicode(name, 'latin-1')
u'Christensen Sk\xf6ld'
이를 달성하는 또 다른 방법은 다음과 같습니다.
>>> name.decode('latin-1')
u'Christensen Sk\xf6ld'
문자열 앞에 있는 "u"는 코드가 없음을 나타냅니다.이것을 인쇄하면 악센트 부호가 있는 문자가 올바르게 표시됩니다.
>>> print name.decode('latin-1')
Christensen Sköld
지금:필요한 경우 de "encode" 메서드를 사용하여 유니코드를 예를 들어 다음과 같은 형식으로 바꿀 수 있습니다.UTF-8 문자열:
>>> name.decode('latin-1').encode('utf-8')
'Christensen Sk\xc3\xb6ld'
다른 팁
유니코드 이스케이프가 포함된 바이트 문자열이 제공됩니다. b"\N{SNOWMAN}"
, b"\N{SNOWMAN}".decode('unicode-escape)
예상되는 유니코드 문자열을 생성합니다 u'\u2603'
.
나는 그것이 정확하게 올바르게 작동하고 있다고 생각합니다.기본적으로 Python은 문자열을 ASCII 인코딩으로 표시합니다. 모든 터미널이 유니코드를 지원하는 것은 아니기 때문입니다.하지만 실제로 문자열을 인쇄하면 제대로 작동할 것입니다.다음 예를 참조하세요.
>>> u'\xcfa'
u'\xcfa'
>>> print u'\xcfa'
Ïa
제휴하지 않습니다 StackOverflow