如何将php shell的exec输出转换为utf8

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将php shell的exec输出转换为utf8相关的知识,希望对你有一定的参考价值。

我正在尝试将执行shell的php中的一个命令的输出转换为utf8,因为json_encode返回空字符串。

我试图使用mb_detect_encoding来检测编码,我想使用mb_convert_encoding,但mb_detect_encoding返回空字符串。

我有这样的输出:

2016-04-29  10:09         2�216�720 0.8.1.zip

我也试过这个:

sapi_windows_cp_conv(sapi_windows_cp_get(), 65001, $output);

但这回归:

sapi_windows_cp_conv(): Wide char conversion failed

在这个问题PHP UTF-8 to Windows command line encoding中找到的输出代码页

在我执行dir之前尝试转换为utf8:

shell_exec('chcp 65001 && dir');

但我得到了相同的结果,奇怪的是 而不是空格和空的mb_detect。

如何将Windows上的shell命令输出转换为UTF8?

答案

function sapi_windows_cp_get()接受字符串作为参数

$output = sapi_windows_cp_conv(sapi_windows_cp_get('oem'), 65001, $output);

以上是关于如何将php shell的exec输出转换为utf8的主要内容,如果未能解决你的问题,请参考以下文章

如何让php执行shell

PHP exec() 通过浏览器执行时不会执行 shell 命令

使用 shell_exec 将 doc、docx 文件转换为 pdf

如何将此终端语法转换为 OpenSSL 的 PHP 语法 [重复]

PHP中的异步shell exec

如何让exec自己运行,php页面继续运行,让PHP不再阻塞