健康724
问题与成因
中⽂windows系统的中⽂编码多会使⽤GBK,⽽不是UTF-8。因此设置压缩密码时,密码很可能采⽤了GBK编码。在只使⽤UTF-8编码的操作系统(⽐如英⽂windows,linux等)上,即使输⼊了同样的中⽂内容也会提⽰密码错误。 扬州大学职前教育据个例⼦,四个汉字“中⽂密码”编码为GBK后的16进制表⽰:
0xD6D0 0xCEC4 0xC3DC 0xC2EB
编码为UTF-8后的16进制表⽰:
0x4E2D 0x6587 0x5BC6 0x7801;
内容不相同。因此提⽰了密码错误。
解决⽅案
假设我们使⽤的OS是UTF-8的,那么就尝试将中⽂密码编码到GBK(可能乱码,但不影响使⽤)。 linux iconv
在linux机器上可以这样解决
echo -n "中⽂密码" | iconv -f utf-8 -t gbk >
执⾏后,在UTF-8系统系查看:
没错,就是乱码的。只要直接复制乱码,粘贴进密码框就能解密。 Python
在windows上可以安装python3,然后这样解决:
兰亭集序说课稿s="中⽂密码"
with open('', 'wb') as f:
f.de('gbk'))
直接复制乱码,粘贴进密码框就能解密。
偶极子天线
Notepad++
wimax网络
Notepad++据说能够转换编码,没有亲⾃尝试过。