Home > Backend Development > PHP Tutorial > php使用exec执行unzip解压命令 文件名里的中文成了utf-8字符串

php使用exec执行unzip解压命令 文件名里的中文成了utf-8字符串

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-06 20:14:57
Original
1863 people have browsed it

php通过exec执行unzip来解压文件
为什么解压出来的文明名中文都是类似utf-8字符的格式
比如
2064 - 副本.mp4 解压出来成了 2064 - #U526f#U672c.mp4
但是这个命令通过ubuntu终端来执行 解压出来就正常
请教大神如何解决啊?

回复内容:

php通过exec执行unzip来解压文件
为什么解压出来的文明名中文都是类似utf-8字符的格式
比如
2064 - 副本.mp4 解压出来成了 2064 - #U526f#U672c.mp4
但是这个命令通过ubuntu终端来执行 解压出来就正常
请教大神如何解决啊?

解决了
在nginx下通过php执行exec的时候

<code>echo exec('locale charmap')
</code>
Copy after login

会显示编码设置成了:

<code>ANSI_X3.4-1968
</code>
Copy after login

终端里local charmap显示的却是utf-8
甚至php cli运行php显示也是utf-8
估计应该是nginx的哪些配置导致的
在php代码中设置一下编码就好了

<code>$locale = 'zh_CN.UTF-8';
setlocale(LC_ALL, $locale);
putenv('LC_ALL='.$locale);
</code>
Copy after login

具体原理嘛 就期待达人来解释了

可以设置php文件的源码为utf-8试试:header("Content-type: text/html; charset=utf-8");

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
php data acquisition?
From 1970-01-01 08:00:00
0
0
0
PHP extension intl
From 1970-01-01 08:00:00
0
0
0
How to learn php well
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template