现在php有很多类库,会生成文件,比如生成zip文件,生成二维码等等。这些类库用起来很爽,但是一旦生成带有中文的文件名,极有可能出现乱码。
问题:生成的中文文件名会变成乱码
解决:使用函数:iconv()、rename()
生成文件名时,直接生成英文名,比如:a.zip、c.zip等等。然后,使用php的移动文件的函数rename即可,
rename('a.zip',iconv('UTF-8', 'GB2312//IGNORE', '中文a.zip'));
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。