PHP ZipArchive类 文件名中文乱码如何解决

项目需要把上传的压缩包进行解压,并校验文件名是否符合要求,下面是获取目录文件名的方法

PHP ZipArchive类 文件名中文乱码如何解决

这个方法可以获取用户名,但是会有乱码的问题,并没有转码成功,测试压缩包压缩时文件名编码为GB2132,并没有进行其他的编码,判断是ZipArchive类打开压缩包或者按索引获取文件信息时做了一些操作

查阅PHP官方文档发现

PHP ZipArchive类 文件名中文乱码如何解决

可以直接读取原始数据

更改代码

PHP ZipArchive类 文件名中文乱码如何解决

测试文件读取转码正常,乱码问题修复

注:此常量要求PHP版本7.0.8以上