By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. [Windows]gitの設定ファイルと最初の設定(ファイル名文字化け対策と個人識別情報). GradleのJavaプラグイン使用してビルドを行う時、以下のようなエラーが出る時がある。 これは、Javaコンパイラがビルド時に使用する文字コードと、ソースコード中の文字コードが一致していないことで発生するエラーである。 HogeClass.java:NN: エラー: この文字は、エンコーディングMS932に … この投稿はシェル初心者によるものです。 Help us understand the problem. By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. Posted by NAGAYA on Dec 8th, 2016. この記事を書き終わってから、知人にexplainshellというサイトを教えてもらいました。このサイトのテキストフィールドにシェルコマンドを入力すると、各コマンドや演算子ごとに詳しく説明してくれます。英語が読める方にはお勧めです。, 大学時代からJavaをやっています。 検証を行ったWindows 10のバージョンは下記です。 Windows 10 Home 64bit 2004 19041.329; インストールするもののバージョンは下記です。 Git 2.27.0 64bit; この記事が古くなった場合、下記の手順は最新のインストール手順とは異なっている可能性があります。 インストール 具体的には個人の識別情報の設定とファイル名の文字化けを防ぐ対策を行います 4行目には|がありますが、これは左の処理の出力を右の処理に渡すという演算子なので、$CMD $* 2>&1とiconv -f cp932 -t utf-8の2つの処理からなっていることがわかります。, $CMDには、2行目の処理によりpingが格納されていて、$*は今の引数全体を表しているので、google.co.jpを指します。 よって、$CMD $* 2>&1はコマンド ping google.co.jpの標準出力・標準エラー出力を右側の処理に渡すという意味になります。, iconvはInternational Codeset Conversion Libraryの略で文字コード変換をするコマンドです。使い方はiconv -f <変換前の文字コード> -t <変換後の文字コード>です。 それはxyzzyでも実は似たようなところがあって、自分で時間をかけて作った便利機能みたいなのより、10分位で作ったちょっとした気の聞いた小粒の機能の方が役立ったりするという。gitの奴もおなじで色々コマンドを補完する機能とかつけた奴は全く使わず結局git-bashを立ち上げるだけのを頻繁に使っている。そこで似たようなのをemacsで動かそうとすると文字化けしてしまう。理由がよく分からない。, どちらもほぼやることは一緒で、同じgit-bash.exeを起動するだけなんだけど、なぜかemacsの奴だけ文字化けするという謎。多分shell-commandとxyzzyのshell-executeで実行する時に微妙に何か違うんだと思う。どちらも.bashrcは読み込んでるんだけど、多分.gitconfigか何かをemacsの方だけ読み込んでないか何かな気がする。, なんていうか、普通の設定の問題ではなかった。ウィンドウの左上のアイコンの所をクリックすると出るメニューからオプションを選び、オプションのウィンドウからtextの項目にあるLocaleを色々変えてたら普通に文字化け治った。てかコマンドでlocale設定は色々してたんだけど治らずにウィンドウのオプションいじったら治るのも割りと謎。迷ったのは設定項目が, みたいにエンコードの設定が少なくとも4つあって、それぞれの設定方法が2種類から3種類位ある所にあったように思う。どこを自分が設定していてどこを設定していないのかが非常に分かり難い。そしてこれ前も同じことをやらかしていたらしく前回も結局ウィンドウのアイコンをクリックして出るオプションでなおしていたようなので、丁度いいからメモしておく。メモは大事。, 上の4つを設定しても文字化けしたままになったので変だなと思って、mintty の設定もしてみたら日本語が表示された。, *1:例えばアウトラインツリーをemacsで再現しようと思うと結構上手くいかなくて、org-modeみたいなxyzzyではない折りたたみ機能がかえって便利。でもorg-modeは仰々しい感じで使わない機能も沢山ある。そして解析してくれるのがxyzzyだとoltをマウスでポチポチすると色々変えれたり見出しの文字を正規表現で指定したり出来て痒い所に手が届く。デフォルトでも色々入ってて構造化エディタのアレとかにもマウスだけで簡単に見出しが変えれる。一方emacsだと基本見出しの撃ち込み方とかデフォルトの奴が他の機能とかでも何かと便利なので構造を強制的にorg-modeの記法にせざるをえないとかあったりなかったりする。けど個人的にはこれは不便だなと思う。, himadatanodeさんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?, Powered by Hatena Blog デフォルトだとC:\Users\<ユーザ名>にあります。, 文字化けはされなくなりましたけど、コピペした内容がさっぱりで気持ち悪いので自身の勉強がてら解説いたします。わかりやすくするため、先頭に行番号を付けました。, functionは文字通り関数を意味していて、1~5行目はwincmdという名前の関数の処理を表しています。6行目のaliasはpingというコマンド名をwincmd pingという名前に変更しています。, つまり、ping google.co.jpと入力してコマンドを実行するとwincmd ping google.co.jpに置き換えられ、関数wincmdが呼び出されることになります。, 普段Javaを書いているので()内が空にもかかわらず引数が渡ってくるというのが理解しにくい点なのですが、関数内で$(numは1以上の数字)と書くと対応したインデックスの引数を取得することができます。引数はスペース区切りで複数渡すことができ、インデックスは先頭から割り振られるので、今回のケースでは、, 3行目で唐突にshiftという文字列が出てきますが、これは引数の配列のインデックスを1つ手前にずらします。今回のケースでは、$2のgoogle.co.jpが$1に格納され、$1のpingは削除されます。よって、引数の状態は、, shiftの引数: なので説明が不十分なところがあるかもしれません(誤りがあれば指摘お願いします)。, GitBashはGitコマンドやcdくらいしか使っていなかったのですが、ネットワークの調子が悪くなったので、試しにgoogle.co.jpにpingをうってみました。, 文字コードの変更の仕方: なんとなく実行したpingが文字化けして困ったので調べた内容をメモがてらまとめました。しかし、Git BashでWindowsのコマンドを実行するケースはありそうなのですが、皆さんはどのように回避しているのでしょう? ブログを報告する, windows 10 の 1903 は 32GB 容量があればアップデートできるという話. この時、Javaのソースコード中に日本語のコメントが書かれており、かつ、そのファイルの文字コードがUTF-8であったりすると、Javaコンパイラで日本語の読込みに失敗し、上記エラーが出力される。, このエラーを発生させないようにするには、コンパイル時に使用する文字コードと、ソースコードの文字コードを一致させればよい。, GradleのJavaプラグインを使用している場合、build.gradleを以下のようにすればコンパイル時の文字コードを指定できる。 Microsoft Ignite 2020の振り返りも「Azure Rock Star Community Day」, you can read useful information later efficiently. その場合、標準では /etc/profile.d/aliases.sh にて, のように、いくつかのコマンドについて対応されているのを参考にして ~/.bashrc に必要なコマンドについて同様の記述を追記するというのが一つの方法。, A. ウィンドウタイトルに関してだけはなんとかなったということで、winpty bash したときに出る潜在的な問題は他にもあるかも知れない。, 覚え書きを兼ねて、現状の ~/.bash_profile および ~/.bashrc を残しておく。, /etc/profile.d/git-prompt.sh 最初にはじめまして。今回ご相談したいことは、Git for Windowsの日本語文字化けの解決方法です。 困っていること(1)GitHubのリモートリポジトリに、txtファイルをPushします。⇒ このtxtファイルの中身は以下になります。 Git Bashは、vagrant で仮想マシンを使っていたり、外部サーバーへsshでログインして操作するときの端末としてすごく便利です。ただ、コマンドプロンプトにあるコマンド、例えば、ping などを実行すると、文字化けしてしまいます。こ 現象 † gradle build. なんとなくで設定しがちだった bash の ~/.bash_profile や ~/.bashrc といったファイルの動作仕様が分かりやすくまとまっていて非常に参考になった。, Windows 10 Pro バージョン 1909 (OS ビルド 18363.959)、, ウィンドウタイトルに関してだけはなんとかなったということで、winpty bash したときに出る潜在的な問題は他にもあるかも知れない。, # ※参考:[bashの.profileや.bashrc等を実行する動作仕様 - sgryjp.log](https://blog.sgry.jp/entry/2019/11/09/232927), #===============================================================================, # - 対話操作では必要のない(対話操作以外のコマンド実行に必要な)設定(環境変数 LANG 定義等), # - ログインシェル/サブシェルに関わらず基本変更不要な設定(環境変数 PATH 定義等), # ・ ~/.bashrc はサブシェルでは自動的に呼ばれる(ログインシェルでは自動では呼ばれない), # このため、~/.bash_profile からも呼び出されるよう設定の上で (^1), # (^1) ~/.bashrc があるのに ~/.bash_profile, ~/.bash_login or ~/.profile が無い環境は推奨されず、, # 例えば Git for Windows においては、その場合、/etc/profile.d/bash_profile.sh により, # ~/.bashrc を呼び出す記述が入った ~/.bash_profile が生成される, # ※ログインシェルでは ~/.bashrc は自動的には実行されないため、この設定が必要, # ※ Windows ネイティブな対話型コマンド(Python 等の、interactive mode が mintty に対応していないもの)に対応, # ※ exec によりシェルプロセス自体を置換しているため、これ以降に書いた内容は反映されないことに注意, # winpty 経由だと $PWD が日本語を含む場合ウィンドウタイトルが文字化けする(mintty 3.2.0)問題に対処, # → mintty 3.4.0 / winpty 0.4.3 の組み合わせでは発生しなくなったため、必要がなくなった, # export PS1=`echo "$PS1" | sed "s~\\$PWD~\\\`echo \\$PWD | iconv -f utf-8 -t cp932 2>/dev/null\\\`~"`, # - profile系スクリプト(/etc/profile、/etc/profile.d/*、~/.bash_profile等)は実行されない, # ※必要に応じて /etc/profile や /etc/profile.d/* (aliases.sh等)で定義されている alias 等をコピーしておく, # Evaluate all user-specific Bash completion scripts (if any), # Handle absence of any scripts (or the folder) gracefully, Git for WindowsのGit BASHでウィンドウタイトルだけが文字化けする現象(winptyが原因)と対処方法, A. 最近本当にemacsだと時間さえかければ出来るのかどうか気になってちょくちょく設定作業をしてみているんだけど、流石にxyzzyと同じ風にするのは非常に大変。別の便利さがある別のやり方の方がemacsだと便利というパターンが多いけど、じゃあそれが凄い便利なのかというというほど便利じゃなくて仰々しい多機能さと実際に使う時の不便さが同居するみたいなのが多い*1。 git status等で日本語ファイル名が”\xxx\xxx”と数字の羅列になる これは、Javaコンパイラがビルド時に使用する文字コードと、ソースコード中の文字コードが一致していないことで発生するエラーである。, HogeClass.java:NN: エラー: この文字は、エンコーディングMS932にマップできません, 例えばWindows 10では、システムの文字コードはMS932(Shift_JISの拡張版らしい)なので、特に指定しないとJavaコンパイラはMS932でファイルを読み込もうとする。 まずはこちらのコマンドで文字化けが解消するか試します。 export LANG=ja_JP.UTF-8 export LC_CTYPE=ja_JP.UTF-8 文字化けが治るなら、設定ファイル .bash_profile に追記します. © Zero Configuration. you can read useful information later efficiently. shiftで1つずらしたのは、コマンド名と引数を分けるためだったんですね。 ~/.bash_profileに設定しても化ける場合、Git Bashのショートカットのプロパティでフォントサイズやフォントを変更します. GradleのJavaプラグイン使用してビルドを行う時、以下のようなエラーが出る時がある。 What is going on with this article? この記事が古くなった場合、下記の手順は最新のインストール手順とは異なっている可能性があります。, (1) https://gitforwindows.org/ にアクセスしてください。, (3) ダウンロードしたGit-2.27.0-64-bit.exeをダブルクリックしてください。, (9) Visual Studio Codeがインストール済みの場合は[Use Visual Studio Code as Git's default editor]、それ以外の場合は[Use Vim (the ubiquitous text editor) as Git's default editor]を選択して、[Next]をクリックしてください。, Java / Spring / Microservices / Kubernetes(CKAD) / IntelliJ IDEA, システム開発/評価・検証支援/品質改善支援サービスと現場に即した実践的なIT研修サービスを提供しています。. Help us understand the problem. Windowsの場合、Git Bashの画面の適当なところで右クリック→Optionsでオプション画面を開き、左のメニューからTextを選択するとLocaleとCharacter setのプルダウンメニューが表示されるので適切な値に変更します。たぶん、ja_JPとUTF-8でいいと思います。, pingやipconfigなどのWindowsのコマンドはShift_JIS(CP932)で出力されるようになっています。なので、Git Bashで文字コードをUTF-8にすると、Shift_JISで出力されたものをUTF-8で表示しようとするため文字化けが起こります。, Git Bashの文字コードをShift_JISにすれば文字化けは起こらなくなりますが、それはやりたくないので。"git bash 文字化け ping"でググったところGit Bashでのpingの文字化けを解決という直球なタイトルの記事が引っかかり、その記事で紹介されている以下のシェルスクリプトを.bashrcファイルにコピペし、Git Bashを再起動したところpingの結果が文字化けしないようになりました。, .bashrcファイルの場所: のようにすると、対話型コマンドの種類が増えるごとにメンテナンスしなければならないため、面倒なのが難点。 ただし当然ながら、対話型コマンドがそのままではうまく動作しなくなる。, Python なんかの Windows ネイティブな対話型コマンドを呼び出すのに、いちいち, のように alias 定義するのが面倒だったので bash 自体を winpty で呼び出していたのだけれど、これが原因でウィンドウタイトルが化けてしまうのは想定外……。, bash そのものを winpty 経由で呼び出しているのが原因なのでこれを止め、個別のコマンド毎に winpty 付き呼び出しを行うようにすれば問題はなくなる。 (以下はUTF-8を指定した場合の例), masa213fさんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?, Powered by Hatena Blog ブログを報告する. | git bash で文字化けしたので何とかした話 git for windows 最近本当に emacs だと時間さえかければ出来るのかどうか気になってちょくちょく設定作業をしてみているんだけど、流石に xyzzy と同じ風にするのは非常に大変。 All Rights Reserved. Git Bash の文字化けを解消してみる 成功したのでメモとして残しておきます。 Git Bash の文字化けを解消してみる 環境 Git Bash 日本語化 文字化け 「?」表示の解決 「豆腐文字」の解決 まとめ … Git Bashの文字コードをShift_JISにすれば文字化けは起こらなくなりますが、それはやりたくないので 。 こんにちは!めぐたんです。 グランフェアズでGitの運用が始まってからずいぶん経ちますが、Git Bashの設定ってあまり頓着したことがありませんでした。