유니코드 이스케이프 시퀀스를 파이썬 문자열의 유니코드 문자로 변환하는 방법

StackOverflow https://stackoverflow.com/questions/990169

  •  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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top