【发布时间】:2012-01-30 12:33:20
【问题描述】:
我有一个使用shell_exec() 从 PHP 运行的命令。
有时命令的输出会包含重音字符。
从 Bash 运行时,输出正确显示。但是,当从 shell_exec 运行时,重音字符会丢失并且输出会被截断。
Bash 的示例输出:
. D 0 Tue Oct 25 16:45:26 2011
.. D 0 Tue Oct 25 16:45:26 2011
...
Background pres for political speech maggie & gemma.ppt A 3323392 Fri Oct 24 14:31:26 2008
extra listening exercise on la télévision.doc A 24064 Wed Jan 11 08:12:32 2006
gender of nouns.ppt A 42496 Fri Sep 10 07:55:42 2004
...
63999 blocks of size 8388608. 36710 blocks available
来自shell_exec 的示例输出 - 注意télévision、vidéo 等会发生什么:
. D 0 Tue Oct 25 16:45:26 2011
.. D 0 Tue Oct 25 16:45:26 2011
...
Background pres for political speech maggie & gemma.ppt A 3323392 Fri Oct 24 14:31:26 2008
extra listening exercise on la t gender of nouns.ppt A 42496 Fri Sep 10 07:55:42 2004
...
63999 blocks of size 8388608. 36710 blocks available
【问题讨论】:
-
bash 使用了除
shell_exec之外的其他编码。尝试找出shell_exec正在使用哪个 shell,并比较两者之间的编码配置。将两者都添加到您的问题中。 -
Unicode to PHP exec 的可能重复项 - 尤其是 this answer。
-
hakre,你是对的。我看过那个答案,但没有发现它提出了两种不同的解决方案,我只尝试了第一种。尝试第二个解决了这个问题。谢谢。
-
请在下面添加您的解决方案作为答案并接受它。像你这样的问题并不多,所以我认为在这里解决它也是值得的。您可以稍后接受您的答案(是的,这有效)。这将有助于使该网站正常运行。
标签: php shell encoding character-encoding