2017-11-08 11 views
0

この文字列を読み込み可能なものに変換する必要があります。文字列をコードページから別のコードページに変換するにはどうすればよいですか?

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

それは.decode方法、のみ.encodeを持っていません。

最悪の部分は、これが正確にどのコードページであるかわかりません。おそらくそれは"cp1251"です。

私はPython 3を使っていますが、Python 2の答えも歓迎します。私は正確に何が変わったのかは分かりません。

+0

Python 3では '.decode()'しかできません。 – kichik

答えて

1

おそらく "cp1251"です。

閉じる... ish。

サロゲートの数が少ないため、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

はい、それは完璧です、ありがとう! –

関連する問題