C++ zlib库能否实现360压缩那样解压的时候选择压缩包语言?

zlib库在英文系统下解压乱码,360压缩能够选择中文解码不乱码?那么zlib能实现中文解压吗?或者有其他开源解压库实现中文解压吗

压缩和解压跟语言没关系,zlib能解压中文,解压出来显示的时候,设置一下显示的编码方式就可以了或者进行一下编码格式的转换。

Linux 中unzip解压时中文乱码的解决办法

当我们在linux中解压一个含有中文名字的压缩包如“资料.zip”时,如果直接使用如下的命令,将会出现中文乱码。

unzip 资料.zip

主要的原因是因为unzip在解压的时候会将编码转化为其内部默认的编码,而默认的编码根本不支持中文CP936编码。因此我们需要在解压的时候明确的指定需要使用的编码。

目前可以采用如下两种方式解决

方法一 在解压的时候直接指定编码格式

#指定GBK GB18030编码也是可以的

unzip -O CP936 资料.zip

方法二 配置环境变量,指定unzip的参数

在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件

比如,需要在/etc/environment中加入2行:

UNZIP="-O CP936"

ZIPINFO="-O CP936"

设置编码(中文=GBK,英语=ASCII等)