【发布时间】:2012-12-07 08:45:45
【问题描述】:
我需要使用 php exec 命令来处理 UTF-8 文件名。问题是 php exec 命令似乎不理解 utf-8。我使用这样的东西:
echo exec('locale charmap');
返回ANSI_X3.4-1968
查看this SO 问题,解决方案如下:
echo exec('LANG=de_DE.utf8; locale charmap');
但我仍然得到相同的输出:ANSI_X3.4-1968
另一方面 - 如果我在 bash 命令行上执行这个 php 命令:
php -r "echo exec('LANG=de_DE.UTF8 locale charmap');"
输出为 UTF-8。 所以问题是:
- 为什么在 bash 和 apache_module/web 页面执行 php 命令会有不同的结果?
- 如果
exec在网站内作为 apache 模块运行,如何设置 UTF-8?
【问题讨论】:
-
等一下,您是要更改由
exec生成的进程的语言环境,还是要让exec更改PHP 的 语言环境? -
@Charles 我不确定,你到底是什么意思。但我发现了以下解决方案(请看下面)。
-
你是怎么知道你的 exec 命令返回的
ANSI_X3.4-1968