問題與成因
中文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 >gbk_code.txt
執行后,在UTF-8系統系查看gbk_code.txt:

沒錯,就是亂碼的。只要直接復制亂碼,粘貼進密碼框就能解密。
Python
在windows上可以安裝python3,然后這樣解決:
s="中文密碼"
with open('gbk_code.txt', 'wb') as f:
f.write(s.encode('gbk'))
直接復制亂碼,粘貼進密碼框就能解密。
Notepad++
Notepad++據說能夠轉換編碼,沒有親自嘗試過。
