windows 7 php 7.1 命令行 执行 中文文件名 的PHP文件

Posted 小六

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows 7 php 7.1 命令行 执行 中文文件名 的PHP文件相关的知识,希望对你有一定的参考价值。

php5.6时代直接执行 

php.exe  文件.php 

是没有的这个问题

在win下的命令行中 活动代码页命令

 chcp   

修改

chcp 936  //gbk

chcp 65001 //utf-8

但是在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] [email protected] 

解决方案:

打开php.ini 搜索 internal_encoding然后改为 internal_encoding = "cp936"

default_charset="UTF-8"  这一项应该是默认的 如果没有就加上

这样就对应了简体中文的windows环境 不过这个方案的缺点就是写的很死

如果把PHP打包发布的话 大概是只能在简中的系统下执行

改了这个以后,PHP文件还是用UTF-8编码来写

不过输入路径作为参数 也就是argv变量里面的内容 记得转码成UTF-8

 

以上是关于windows 7 php 7.1 命令行 执行 中文文件名 的PHP文件的主要内容,如果未能解决你的问题,请参考以下文章

Int在CentOS 7.1和Laravel 5.1上以PHP形式处理

在命令行 ubuntu 16.04 上切换 php 版本

Windows 7 命令提示符:如何从命令行执行批处理脚本?

Laravel 5.5 项目下载文件而不是在浏览器中打开它们 PHP 7.1 MAC

如何在MacOS High Sierra上安装php@7.1的memcached模块?

如何设置 Windows 命令行以使用 php.ini 文件? [复制]