如何修改MMD压缩文件的编码?
使用系统自带的那个“发送到-压缩文件夹”?那么就是压缩为zip格式了。而这种格式,确实要考虑文件名编码的问题——你在日语系统下压缩,使用了本地编码Shift-JIS,显示正常的文件名;拿到简中系统下,此时本地的编码是简体中文GBK,而系统不会智能纠错,也不能由你改变显示的编码,于是文件名乱码。
一、如果你是这种“不兼容”zip文件的接收者,你可以使用那些高级一点的压缩软件——提供“指定文件名编码”这个功能的软件——然后根据具体文件选择显示的编码。
比如下面几种软件:
1、Bandizip和360压缩,在软件主界面上就有显眼的按钮提供给用户来改变文件名显示编码




2、更老牌的压缩软件WinRAR,可以在菜单栏中找到改变编码的条目


3、如果使用9.50或者更高版本的Total Commander,也可以指定zip文件的文件名编码——可以进入压缩包后选择,也可以在TC的解压缩界面上选择




二、如果你想生成一个文件名不会乱码的zip文件,可以选用那些已经考虑到编码问题,甚至具备编码相关设置项的软件。
比如下面的几种:
1、最容易理解的是Bandizip,它提供两种途径供用户选用


这两项是:在Zip文件中使用Unicode文件名(UTF-8);将Unicode文件名存储在Zip文件的额外头字段中(UTF-8)
从软件的帮助页面How to use Unicode filenames in ZIP format可得知这两种途径是什么。简而言之,第一种途径,某些软件不支持,可能有兼容问题;第二种途径,会让生成的zip体积大一些。
2、再看看WinRAR。它的做法是“将Unicode文件名存储在Zip文件的额外头字段中(UTF-8)”,而且只有这一种,用户并不能换其它途径——只要在下图界面选择生成zip就行了。并没有其它设置项(但根据水木社区这里贴出的WinRAR 4.10更新记录来看,它应该两种途径都可以的才对,莫非后期版本做了取舍?)。


3、7-zip值得单独提一下。它默认是不考虑文件名编码问题的,总是使用当前系统的本地编码,所以文件在其它系统打开多半会乱码。但实际上它有提供一个参数供用户使用,只是并不理想。
另一种压缩软件peazip生成zip是调用7-zip组件,所以默认也不是Unicode文件名。但是可以在它设置中启用Unicode文件名。更好的是,设置之后追加新文件,新文件也不会乱码,是青出于蓝而胜于蓝了。 2021-07-07补充:好消息!7-zip最新版(21.02 alpha 2021-05-06)可以“writes additional field for filename in UTF-8 encoding to zip archives.”,也就是“将Unicode文件名存储在Zip文件的额外头字段中(UTF-8)”。
4、而使用Total Commander来压缩解压缩,它的相关设置项更加丰富

