最近做智能脚本,发现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
如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。
如本文对您有用,捐赠和留言 将是对我最好的支持~(捐赠可转为站内积分)
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。