[解決済み] Windows 10 CLI ターミナルでの git log 出力のエンコーディングの問題
質問
問題点
どのように
git log
コマンドの出力を Windows CLI ターミナルに正しく表示させるにはどうしたらよいでしょうか。
表示例
見ての通り、発音区分文字は正しく入力できますが
git log
については、出力がなぜかエスケープされてしまいます。このように
UTF-8
エンコーディング表
角括弧の中のコード (
<
と
>
) の出力は、以前にタイプされた
git config
パラメータに対応する。
を設定しようとしました。
LESSCHARSET
環境変数を
utf-8
で提案されているように
同様の問題に対する回答の一つ
を実行しても、出力が文字化けしてしまいます。
私は知っている
.git/config
は正しくエンコードされており
utf-8
で処理されるため
gitk
は期待通りです。
以下は
locale
というコマンドを出力します。
LANG=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_ALL=
EDITです。
出力は、純粋な git-bash :
というわけで、この問題はシェルに依存せず、Gitまたはその設定自体に関係していると思います。
どのように解決するのですか?
さて、少し実験してみたところ、Windows の Git コマンドは実は UNIX の変数を必要とすることがわかりました。
LC_ALL
のような UNIX 変数が必要であることがわかりました。このコマンドを試してみてください。
set LC_ALL=C.UTF-8
そして、その結果をお楽しみください。以下は、私のコンソールで起こったことです (フォント "Consolas", no
chcp
は不要です)。
更新しました。
-
さて、Windows のコマンドで
type
(コンソールにファイルを表示) のような Windows のコマンドが正しく動作するためにはchcp 65001
. -
また、Git Bashのようなコマンドを好む場合は、次のようにします。
cat
のような Git Bash のコマンドが好きな場合は、前述したset LC_ALL=C.UTF-8
.
更新2:変更を恒久化する方法
ユーザーとして
モノ・ブレーン
が言ったように、環境変数
LC_ALL
を作成し、それに値
C.UTF-8
という値を設定します(ドイツ語のスクリーンショットで申し訳ありません)。
次にコマンドプロセッサのコンソール (cmd.exe) を開くと、コマンドを発行したときに変数の値が表示されるはずです。
echo %LC_ALL%
. PowerShell では、次のコマンドを発行したときに表示されるはずです。
$env:LC_ALL
.
UTF-8 コードページを永続化する最も簡単な方法は、次のように開くことです。
regeedit
という名前の新しい値を追加することです。
Autorun
という新しい値をセクション
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
を作成し、それに値
chcp 65001
.
今後、新しい cmd.exe コンソールを開くたびに、このコマンドが実行されます。新しいウィンドウにその出力が表示されることもあります: "Aktive Codepage: 65001.quot;(または、各言語で同様のもの)。
ああ、そういえば。PowerShell で UTF-8 でエンコードされたファイルを正しく表示するには、次のようにします。
Get-Content -encoding UTF8 file.txt
または
cat -encoding UTF8 file.txt
(
cat
のエイリアスである。
Get-Content
の別名である)。
関連
-
GitのPlease enter a commit messageで、このマージが必要な理由を説明してください。
-
[解決済み] あるユーザーのコミットだけを集めた git ログを表示するにはどうすればよいですか?
-
[解決済み] Windows での Git リポジトリのディレクトリを無視する
-
[解決済み] svn log -v' のように 'git log' にファイル名を表示させる方法
-
[解決済み] Git for Windows でファイル名が長すぎる
-
[解決済み] git diff の出力を自分の好みの diff ツール/ビューアで表示するにはどうすればよいですか?
-
[解決済み] 作者と日付を含む git log からの最短出力
-
[解決済み] ターミナルでGitツリーを表示できない
-
[解決済み] VSCodeからgitの統合を削除する
-
[解決済み] Git タグリスト、コミット sha1 ハッシュの表示
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
fatal: リモート参照マスタが見つかりませんでした。
-
Git学習まとめ(2)コミットには何も追加されていないが、未追跡のファイルは存在する
-
[解決済み] Windowsのコマンドラインでunicode文字を使うには?
-
git-fatal: 設定されたプッシュターゲットがありません / 警告: store/README.md の LF は CRLF に置き換えられています。
-
[解決済み] git diff を stdout に書き出すには?
-
[解決済み] なぜgit AuthorDateはCommitDateと違うのですか?
-
[解決済み] GitHub: フォークを "自分のプロジェクト "にする
-
[解決済み] GitHubのウェブサイト上でディレクトリやフォルダの名前を変更するには?
-
[解決済み] git add --patch' で新しいファイルをインクルードする?
-
[解決済み] 別のユーザーでコードをコミットするにはどうすればよいですか?