关于apache与java提供的压缩工具包全角字符乱码的问题
项目中有个功能需要将一些文件打成压缩包,代码是前辈写的,前期没有使用,后来上线使用后遇到一个问题,少部分文件名称中的空格之类的字符乱码
1、定位问题:之前的代码使用的是apache提供的压缩工具包,设置的编码为GBK,这个编码按网上资料的说法是系统环境编码,定位了一下问题,是压缩包中的文件的文件名称中的全角字符乱码
2、修复:我在网上查了很多资料,一般遇到的问题都是使用的java提供的压缩工具包,压缩时整个文件乱码,没有查到我这种情况,尝试更换了一下apache的jar包版本,没解决;因为查询到大家使用apache工具包大多是因为可以设置编码,而且都是设置成UTF-8编码了,但我们的系统环境是GBK,于是我尝试使用java的压缩工具包,就解决了这个问题;
3.总结:本身对压缩这块并不够了解,关于这个问题我只是做了个猜测:apache的压缩工具包对GBK环境下的全角字符转码的支持不完善(UTF-8下未做测试),java的压缩工具包对UTF-8环境转码的支持不完善(或者说不支持)