鍍金池/ 問答/PHP  Linux  網(wǎng)絡安全/ git for windows 使用 git bash here 執(zhí)行 PHP

git for windows 使用 git bash here 執(zhí)行 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
  • 對輸出結果進行分析,發(fā)現(xiàn)其輸出的實際已經(jīng)是 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

但是,均宣告無效。我該如何去解決這個問題呢?請給我一些指引,謝謝!

回答
編輯回答
誮惜顏

哈哈哈,今天無意中找到解決辦法了
是php的路徑問題,比如我的php.exe的路徑是D:wampbinphpphp7.0.23\
test.php的文件編碼是utf-8
git bash的終端編碼也已經(jīng)設置成utf-8
在git bash中使用 /D/wamp/bin/php/php7.0.23/php ./test.php 就能正常輸出中文了
所以解決的步驟就是:
1.vim ~/.bashrc
2.

export LANG=en_US.utf-8
export PATH="$PATH:/D/wamp/bin/php/php7.0.23"

3.source ~/.bashrc
至于為什么路徑的問題會造成亂碼就不清楚了

2017年7月14日 16:01
編輯回答
厭遇

我使用的是 phpstudy 開發(fā)環(huán)境。我把這個軟件升級到 2018版本后 似乎就解決了這個問題。

  • 打開 git bash here 在標題欄右鍵鼠標,選擇 options
  • 修改 text 選項配置

    • Locale 設置成 zh_CN
    • Character set 設置成 UTF-8
2017年4月24日 01:49
編輯回答
笑忘初

環(huán)境變量, 設置 LANG = zh_CN.UTF-8
試下這個.

2017年10月14日 23:11
編輯回答
歆久

跟win下的cmd一樣,都是gbk的編碼,輸出utf8就亂碼。

2017年4月5日 07:42