最近遇到一個(gè)小問(wèn)題,就是我在ubuntu下使用中文密碼壓縮文件發(fā)送給使用windows的同事后,同事說(shuō)使用密碼無(wú)法解壓。
其實(shí)傳給他前,我就料想他解壓不了~
因?yàn)橹形牡膚indows大多的設(shè)置是GBK之類。
而ubuntu大多是UTF-8,例如我的:
echo $LANG
zh_CN.UTF-8
這樣導(dǎo)致同樣一段中文,在各自的系統(tǒng)上展示完全一樣,但是底層的二進(jìn)制是完全挨不著的。
因?yàn)槲胰粘9ぷ鞔蟛糠謺r(shí)間都在ubuntu上,所以我不想繞過(guò)去,也不想改系統(tǒng)編碼,那就轉(zhuǎn)碼。
簡(jiǎn)單就以下面的zip壓縮命令為例子:
zip -P "$(echo -n 明天下雨\!55555| iconv -f utf-8 -t gbk)" docx.zip 《用戶手冊(cè)2.0》.docx
轉(zhuǎn)碼部分:
echo -n 明天下雨\!55555| iconv -f utf-8 -t gbk
iconv是用的比較多的轉(zhuǎn)碼工具,我自己在C/C++編碼時(shí)也經(jīng)常會(huì)用到。
Note:-f 代表from,-t 代表to。
所以這是將echo出的字符串從UTF-8格式轉(zhuǎn)成GBK格式的字符串。
同理,解密GBK編碼的windows主機(jī)加密壓縮文件:
unzip -P "$(echo -n 明天不下雨\!111|iconv -f utf-8 -t gbk)" doc.zip