git for windows 使用 git bash here 执行 PHP 脚本输出中文乱码

git version 2.15.0.windows.1
PHP 7.0.12 (cli) (built: Oct 13 2016 11:04:07) ( NTS )
<?php
    echo '我是中国人';

以上是我的 PHP 脚本代码。文件名是 test.php 字符编码是 UTF-8 无 BOM 头的。我在 git bash 里使用 php test.php。然后输出的是乱码。输出的结果是:鎴戞槸涓浗浜

我尝试使用 git bash 的 optionstext 选项设置成了 UTF-8 编码。然后通过 locale 命令核对无误,当然也过尝试关闭 git bash 命令窗口重新打开进行测试,但是一样显示乱码。

以下是我通过 百度、必应 以及其他途径获取所尝试过的方法,均无效。

git config --global gui.encoding utf-8
chcp.com 65001

vi /etc/inputrc 
set output-meta on
set convert-meta off

后面我就开始思考,形成了如下具体步骤:

  • 难道是 git bash 命令窗口字符编码那里没设置对导致的?

    // 正常显示中文
    cat test.php  
    
    // 中文乱码  
    php test.php
  • 对输出结果进行分析,发现其输出的实际已经是 UTF-8 编码的字符了

    // 输出结果为:我是...
    iconv('UTF-8', 'GBK//IGNORE', '鎴戞槸涓浗浜')
  • 尝试使用 CMD 测试

     // 输出 936
    chcp
    
    // 输出乱码
    php test.php
    
    // 更改为 65001
    chcp 65001
    
    // 输出正常  
    php test.php
  • CMD 既然可以通过 chcp 65001 来改变,于是我也想通过改变 git bash 终端字符编码总可以了吧,于是有了如下命令:

    chcp.com 65001
    
    git config --global gui.encoding utf-8

但是,均宣告无效。我该如何去解决这个问题呢?请给我一些指引,谢谢!

白衣染霜花
浏览 555回答 4
4回答

慕娘9325324

环境变量, 设置 LANG = zh_CN.UTF-8试下这个.

蝴蝶不菲

哈哈哈,今天无意中找到解决办法了是php的路径问题,比如我的php.exe的路径是D:wampbinphpphp7.0.23\test.php的文件编码是utf-8git bash的终端编码也已经设置成utf-8在git bash中使用 /D/wamp/bin/php/php7.0.23/php ./test.php 就能正常输出中文了所以解决的步骤就是:1.vim ~/.bashrc2. export LANG=en_US.utf-8 export PATH="$PATH:/D/wamp/bin/php/php7.0.23" 3.source ~/.bashrc至于为什么路径的问题会造成乱码就不清楚了

胡子哥哥

我使用的是 phpstudy 开发环境。我把这个软件升级到 2018版本后 似乎就解决了这个问题。 打开 git bash here 在标题栏右键鼠标,选择 options 修改 text 选项配置 Locale 设置成 zh_CN Character set 设置成 UTF-8

jeck猫

跟win下的cmd一样,都是gbk的编码,输出utf8就乱码。
打开App,查看更多内容
随时随地看视频慕课网APP