解压缩时解码文件名的日文字符

时间:2018-03-19 08:37:42

标签: python decode cjk

我解码文件名:

  

20180126 / \ X83 \ x8a \ X83 / \ X81 [\ x83X \ x83f \ X81 [\ X83 ^ \ x8d \ XB7 \ X82 \ XB5 \ X91 \ XD6 \ X82 \ xa6 \ x8a \ XD6 \ x98A \ x8e \ X91 \ X97 \ XBF /

使用Python。但它以\ x83 / \ x81字符给出错误。

  

编解码器无法解码位置11-12中的字节:非法多字节序列

这是示例代码:

uf = codecs.decode(bad_filename, 'shift_jisx0213')

我尝试使用这些编解码器:'shift_jisx0213','cp932'

我该如何解决这个问题?是否有任何编程语言或库可以解码?

1 个答案:

答案 0 :(得分:4)

有一个正斜杠不属于第三个和第四个十六进制转义之间。删除这个斜杠,事情就好了:

>>> print(b"20180126/\x83\x8a\x83\x81[\x83X\x83f\x81[\x83^\x8d\xb7\x82\xb5"
        b"\x91\xd6\x82\xa6\x8a\xd6\x98A\x8e\x91\x97\xbf/".decode("shift_jisx0213"))
20180126/リメ[スデータ差し替え関連資料/