如何修改MMD壓縮文件的編碼?
使用系統(tǒng)自帶的那個(gè)“發(fā)送到-壓縮文件夾”?那么就是壓縮為zip格式了。而這種格式,確實(shí)要考慮文件名編碼的問題——你在日語(yǔ)系統(tǒng)下壓縮,使用了本地編碼Shift-JIS,顯示正常的文件名;拿到簡(jiǎn)中系統(tǒng)下,此時(shí)本地的編碼是簡(jiǎn)體中文GBK,而系統(tǒng)不會(huì)智能糾錯(cuò),也不能由你改變顯示的編碼,于是文件名亂碼。
一、如果你是這種“不兼容”zip文件的接收者,你可以使用那些高級(jí)一點(diǎn)的壓縮軟件——提供“指定文件名編碼”這個(gè)功能的軟件——然后根據(jù)具體文件選擇顯示的編碼。
比如下面幾種軟件:
1、Bandizip和360壓縮,在軟件主界面上就有顯眼的按鈕提供給用戶來改變文件名顯示編碼




2、更老牌的壓縮軟件WinRAR,可以在菜單欄中找到改變編碼的條目


3、如果使用9.50或者更高版本的Total Commander,也可以指定zip文件的文件名編碼——可以進(jìn)入壓縮包后選擇,也可以在TC的解壓縮界面上選擇




二、如果你想生成一個(gè)文件名不會(huì)亂碼的zip文件,可以選用那些已經(jīng)考慮到編碼問題,甚至具備編碼相關(guān)設(shè)置項(xiàng)的軟件。
比如下面的幾種:
1、最容易理解的是Bandizip,它提供兩種途徑供用戶選用


這兩項(xiàng)是:在Zip文件中使用Unicode文件名(UTF-8);將Unicode文件名存儲(chǔ)在Zip文件的額外頭字段中(UTF-8)
從軟件的幫助頁(yè)面How to use Unicode filenames in ZIP format可得知這兩種途徑是什么。簡(jiǎn)而言之,第一種途徑,某些軟件不支持,可能有兼容問題;第二種途徑,會(huì)讓生成的zip體積大一些。
2、再看看WinRAR。它的做法是“將Unicode文件名存儲(chǔ)在Zip文件的額外頭字段中(UTF-8)”,而且只有這一種,用戶并不能換其它途徑——只要在下圖界面選擇生成zip就行了。并沒有其它設(shè)置項(xiàng)(但根據(jù)水木社區(qū)這里貼出的WinRAR 4.10更新記錄來看,它應(yīng)該兩種途徑都可以的才對(duì),莫非后期版本做了取舍?)。


3、7-zip值得單獨(dú)提一下。它默認(rèn)是不考慮文件名編碼問題的,總是使用當(dāng)前系統(tǒng)的本地編碼,所以文件在其它系統(tǒng)打開多半會(huì)亂碼。但實(shí)際上它有提供一個(gè)參數(shù)供用戶使用,只是并不理想。
另一種壓縮軟件peazip生成zip是調(diào)用7-zip組件,所以默認(rèn)也不是Unicode文件名。但是可以在它設(shè)置中啟用Unicode文件名。更好的是,設(shè)置之后追加新文件,新文件也不會(huì)亂碼,是青出于藍(lán)而勝于藍(lán)了。 2021-07-07補(bǔ)充:好消息!7-zip最新版(21.02 alpha 2021-05-06)可以“writes additional field for filename in UTF-8 encoding to zip archives.”,也就是“將Unicode文件名存儲(chǔ)在Zip文件的額外頭字段中(UTF-8)”。
4、而使用Total Commander來壓縮解壓縮,它的相關(guān)設(shè)置項(xiàng)更加豐富


如果想要兼容性最好,那選“將非英語(yǔ)字符文件名保存到額外字段”這一項(xiàng)。
三、也許還要考慮到文件追加的問題——將新文件加入到一個(gè)zip中,新文件是否亂碼、原有的文件是否亂碼?
不同軟件的策略不同,在這三種里面,舊文件的編碼設(shè)定不會(huì)因加入新文件而改變。
1、使用7-zip向zip壓縮包中添加新文件——即使事先啟用參數(shù)讓軟件默認(rèn)生成文件名編碼為utf-8的zip,當(dāng)拖曳一個(gè)新文件加入進(jìn)去時(shí),新文件的名稱依然不是utf-8,會(huì)亂碼;必須右鍵文件-添加到壓縮包,這樣做新文件的文件名才會(huì)使用utf-8編碼
2、使用WinRAR向zip壓縮包中添加新文件——不論原本的編碼是什么情況,新加入的文件名都使用utf-8編碼,不會(huì)亂碼。
3、使用Totalcmd向zip壓縮包中添加新文件——新加入的文件,其文件名編碼根據(jù)當(dāng)前TC設(shè)置而定。
標(biāo)簽: