在PHP5.6时代直接执行 php
php.exe 文件.php windows
是没有的这个问题编码
在win下的命令行中 活动代码页命令.net
chcp 命令行
修改utf-8
chcp 936 //gbkget
chcp 65001 //utf-8it
可是在php 7.1下 执行php.exe 首先会修改命令行的 活动代码页变量
这是一个自动行为 程序会自带一个 chcp 65001 而后你的php文件乱码
做为参数传递的时候 若是有中文字符 那么抱歉程序内部乱码了就
找不到文件了关于这个问题 在百度搜几乎无解 因而在php官网的
bug反馈里面翻到这么一页
https://bugs.php.net/bug.php?id=73716&edit=2
大概在[2016-12-12 21:30 UTC] ab@php.net
解决方案:
打开php.ini 搜索 internal_encoding而后改成 internal_encoding = "cp936"
default_charset="UTF-8" 这一项应该是默认的 若是没有就加上
这样就对应了简体中文的windows环境 不过这个方案的缺点就是写的很死
若是把PHP打包发布的话 大概是只能在简中的系统下执行
改了这个之后,PHP文件仍是用UTF-8编码来写
不过输入路径做为参数 也就是argv变量里面的内容 记得转码成UTF-8