请知悉:本文最近一次更新为 1 year 前,文中内容可能已经过时。

最近做智能脚本,发现PHP脚本在CLI模式下输入的中文,使用fgets(STDIN)取了是空字符串,有些费解。

搜了下网上的资料,各种垃圾……没太多有价值的信息,最终还是通过谷歌中一个PHP的Bug反馈(实际上并不是Bug)找到了解决方案:

sapi_windows_cp_set(936);
fwrite(STDOUT, 'Input:');
$str = fgets(STDIN);
sapi_windows_cp_set(65001);

其实就是切换下命令行的编码集。其他细节嘛,自行研究吧。


参考资料

STDIN not support Chinese in CLI mode


如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。

尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。


与《PHP CLI 获取中文输入》相关的博文:


留言

avatar
😀
😀😁😂😅😭🤭😋😘🤔😰😱🤪💪👍👎🤝🌹👌