2017-11-08 13 views
0

이 문자열을 읽을 수있는 것으로 변환해야합니다.한 코드 페이지에서 다른 코드 페이지로 문자열을 변환하는 방법은 무엇입니까?

'Old_video/\udcc2\udce8\udce4\udce5\udcee\udcef\udcf0\udce8\udcea\udcee\udceb\udcfb' 

그것은 .decode 방법 만 .encode이 없습니다.

최악의 부분은 정확히 어떤 코드 페이지인지 확실하지 않다는 것입니다. 아마도 그것은 "cp1251"입니다.

저는 파이썬 3이지만 파이썬 2에 대한 답변도 환영합니다. 정확히 무엇이 바뀌 었는지 나는 모른다.

+0

파이썬 3에서는'.decode()'만 할 수 있습니다. – kichik

답변

1

아마도 "cp1251"입니다.

닫기 ... ish.

낮은 surrogates로 가득 차 있기 때문에 errors='surrogateescape'을 사용하여 디코딩되었음을 알 수 있으므로 먼저이를 인코딩해야합니다.

>>> 'Old_video/\udcc2\udce8\udce4\udce5\udcee\udcef\udcf0\udce8\udcea\udcee\udceb\udcfb'.encode('latin-1', errors='surrogateescape') 
b'Old_video/\xc2\xe8\xe4\xe5\xee\xef\xf0\xe8\xea\xee\xeb\xfb' 

이제 우리는 올바르게 디코딩 할 수 있다는 것을 알았습니다.

>>> 'Old_video/\udcc2\udce8\udce4\udce5\udcee\udcef\udcf0\udce8\udcea\udcee\udceb\udcfb'.encode('latin-1', errors='surrogateescape').decode('cp1251') 
'Old_video/Видеоприколы' 

그게 파일 이름이 축하한다고 가정하면, 당신은 옳은 것 같습니다.

+0

예, 완벽합니다. 감사합니다. –