있다. 문자처럼 보이는이 UTF-8로 인코딩, 그래서 이것은 간단한 (바이트) 문자열이어야한다 : 다른 곳에서 해당 문자열을 가지고있는 경우
# no u'' prefix:
s = '\xd0\xb2\xd0\xb8\xd0\xb4\xd0\xb5\xd0\xbe \xd0\xbf\xd0\xb0\xd0\xbb\xd0\xb5\xd1\x86 \xd0\xb2\xd0\xb2\xd0\xb5\xd1\x80\xd1\x85'
# string is utf-8, decode it to unicode
u = s.decode('utf-8')
# this only works when your terminal charset is properly set up
print u
>>>> видео палец вверх
, 그것의 문자열 형식이 잘못되었습니다. 이 경우, 서지 Ballesta의 및 Kasramvd의 조언을 따를 수와 latin1
인코딩을 인코딩하여 바이트 문자열로 다시 강제 :
s = u'\xd0\xb2\xd0\xb8\xd0\xb4\xd0\xb5\xd0\xbe \xd0\xbf\xd0\xb0\xd0\xbb\xd0\xb5\xd1\x86 \xd0\xb2\xd0\xb2\xd0\xb5\xd1\x80\xd1\x85'
# force encode with latin 1 and then properly decode it using utf-8
u = s.encode('latin1').decode('utf-8')
print u
>>>> видео палец вверх
내 Windows 시스템에서 코드를 사용 그것은 단지 쓰레기를 표시 ... –
그 방법이 틀린가? 원본은 UTF-8로 인코딩되어 유니 코드로 잘못 표시되기 때문입니다. 'u' 접두사를 없애고's.decode ('utf-8')'를 사용하면 트릭을해야합니다. 인쇄 된대로 현재 인코딩이 'utf-8'일 때만 작동하므로 문자열 리터럴이 해당 인코딩으로 해석됩니다. – dhke
@dhke 어쩌면 OP가 인코딩 된 문자열을 처리하고있는 것으로 보입니다. 그래서 당신은'latin1'에 대한 인코딩으로 전체 프로세스를 뒤바꿀 수 있습니다. – Kasramvd