在解压一些来自日本作者的压缩包时,经常出现文件名乱码的情况,例如枹棃偪傖傫僆僔僆僉PSD。通常情况,我们修改解压缩软件的默认代码页语言为日语或自动检测即可解决。但在批量解压缩时,并不是所有压缩包代码页语言都是日语,所以只能设置为自动检测,但是很多时候自动检测也会失效。
本应使用Shift_Jis进行解码,而错用GBK解码,就会产生枹棃偪傖傫僆僔僆僉PSD这类乱码。
下面是使用Python模拟这种乱码产生的过程
>>> text="未来ちゃんオシオキPSD"
>>> text_sj=text.encode("Shift_Jis")
>>> text_sj
b'\x96\xa2\x97\x88\x82\xbf\x82\xe1\x82\xf1\x83I\x83V\x83I\x83LPSD'
>>> text_gbk=text_sj.decode('gbk')
>>> text_gbk
'枹棃偪傖傫僆僔僆僉PSD'
知道了产生的原因,恢复它就很简单了
>>> text="枹棃偪傖傫僆僔僆僉PSD"
>>> text_true=text.encode("gbk").decode('Shift_Jis')
>>> text_true
'未来ちゃんオシオキPSD'