gitで日本語が表示できないですって?

ほんとだ、表示できない。。

 

MinGW32版のGitを使っています。
(具体的にはここ(本家)からダウンロードしてきたGitです)

 

MINGW32版のGitを普通にインストールしてMinGWプロンプト上でGitを操作すると、日本語をうまく扱うことができないらしい。

たとえば、日本語のファイル名の表示や、内容に日本語が保存されているファイルに対するdiffがうまく表示してくれない。

 

ググって対処法をいくつか見つけたのでメモをしておくので、Gitを使おうと思ったはいいけど日本語がうまく扱えなくて肩を落としているような人に参考にして頂けるとうれしい。

MINGW32ウィンドウで日本語が文字化けする

admin@WIN7SP1 /c/StudyGit/SamplePorject01 (master)
$ ls -l
total 1
-rw-r–r– 1 admin Administ 18 Jul 29 18:48 ?????????.txt

lessへパイプすれば日本語表示できる。

admin@WIN7SP1 /c/StudyGit/SamplePorject01 (master)
$ ls -l | less
total 1
-rw-r–r– 1 admin Administ 18 Jul 29 18:48 使い方.txt

実はこれ、Gitその自体の問題ではなくて、MinGWのコンソールの問題だったりする。

git statusで日本語ファイル名が文字コードで表示される

git statusコマンド

admin@WIN7SP1 /c/StudyGit/SamplePorject01 (master)
$ git status
# On branch master
# Changes not staged for commit:
# (use “git add <file>…” to update what will be committed)
# (use “git checkout -- <file>…” to discard changes in working directory)
#
# modified: “\344\275\277\343\201\204\346\226\271.txt”
#
no changes added to commit (use “git add” and/or “git commit -a”)

 

core.quotepathをfalseに設定すると解決する。

admin@WIN7SP1 /c/StudyGit/SamplePorject01 (master)
$ git config --global core.quotepath false

admin@WIN7SP1 /c/StudyGit/SamplePorject01 (master)
$ git status
# On branch master
# Changes not staged for commit:
# (use “git add <file>…” to update what will be committed)
# (use “git checkout -- <file>…” to discard changes in working directory)
#
# modified: 使い方.txt
#
no changes added to commit (use “git add” and/or “git commit -a”)

日本語を入力することができない

さて、日本語の表示や扱いは問題無くできるようになった。

が、日本語を入力はできない。これもMinGWの仕様というか挙動らしい。

 

個人的には、日本語のファイル名を使わなければいいじゃないかというスタンスだから、今のところとりあえず問題は無い。

 

日本語のファイル名を入力したいなら、MinGWウィンドウを使わずに、コマンドプロンプトからgit.exeを呼び出して使うべしとのこと。

UTF-8 対応の msysGit 1.7.10 リリース! いよいよ Windows で git できるよ!!!より。)

 

関連記事

コメントを残す

トラックバック: http://pgnote.net/wp-trackback.php?p=413