河汉清且浅,牵牛敦而纯

 

在windows系统中,PHP cli 模式下,

exec('ipconfig 2>&1', $output, $status); print_r($output); 返回值为空

可能是编码的原因,对 $output 编码转换后,显示正常

$output = mb_convert_encoding($output, "utf-8", "GBK");

可是和 cmd 模式下 还是有差异的,前者显示为 英文,而后者显示为 中文,使用 putenv 和 setlocale 设置后仍然显示为英文

putenv('LANG=zh_CN.UTF-8');
putenv('LANGUAGE=zh_CN.UTF-8');
setlocale(LC_ALL, "zh_CN.UTF-8");

  

查阅 https://www.php.net/manual/zh/migration71.windows-support.php
https://www.php.net/manual/zh/features.commandline.php

echo sapi_windows_cp_get(); 显示为 65001 ,PHP的代码页默认为 utf-8

然后用 sapi_windows_cp_set('936'); 更改为 GBK ,

 

exec('ipconfig 2>&1', $output, $status); print_r($output);

  

 显示为中文

posted on 2025-09-05 23:40  伊索  阅读(9)  评论(0)    收藏  举报