📚
VSCodeのGit拡張で日本語文字化けを直す
はじめに
VSCodeとGitの連携で、Gitのファイルの差分を表示すると、日本語が文字化けしていたので、その対応メモです。
対応にあたり、こちらの記事が参考になりました。
https://zenn.dev/hikarin/articles/f0c6ad20d43adbdcf8a1
環境
前提として、私は以下の環境で作業しています。
- Windowsマシンで開発、Linuxは使用していない
- 言語はCで、文字コードはShiftJIS、改行コードはCRLF
OS、ツールのバージョンは以下
- OS: Windows 10 Pro 64bit
- VSCode: 1.85.1
- Git: 2.42.0.windows.1
- nkf: 2.1.1
VSCodeの設定で、ファイルのエンコーディングおよび改行コードは以下のように設定しています。
settings.json
{
"files.encoding": "shiftjis",
"files.eol": "\r\n",
"files.autoGuessEncoding": false,
}
gitconfig
gitconfig
[core]
# ページャーの設定
# UTF-8に変換、lessを指定
pager = LC_ALL=ja_JP.UTF-8 nkf -w | less -Sx4
# CRは改行コードの一部扱い
whitespace = cr-at-eol
# 日本語ファイル名の対応
quotepath = false
# 改行コードの自動変換を無効
autocrlf = false
# gitk, git-guiの設定
[gui]
encoding = utf-8
# git diff, git showでの文字コード変換
[diff "cp932"]
# ShiftJISに変換
textconv = nkf -s --cp932
# git add -pでの文字コード変換
[interactive]
# UTF-8に変換
textconv = nkf -w
- ページャーの設定で、lessはShiftJISを扱えないため、UTF-8に変換してから渡すようにしました。オプションで、
-S
は行の折り返しを無効、-x4
はタブ文字を4スペースに設定 - nkfは、Vectorのサイトからnkf.exe nkf32.dll Windows用をダウンロードし、解凍後、「vc2005」-「win32(98,Me,NT,2000,XP,Vista,7)Windows−31J」フォルダからnkf32.exeを取得してください。次に、nkf32.exeをnkf.exeにファイル名を変更し、パスの通ったフォルダに置いてください。
例: C:¥Program Files¥Git¥cmd
オプションで、-w
はUTF-8に変換、-s
はShiftJISに変換、--cp932
はCP932エンコーディングの使用を指定
.gitattributes
.gitattributes
# diff
* diff=cp932
初め、diff=cp932をCP932と書いていたため、変換が行われず、あれ?ってなりました。大文字小文字には注意が必要です。
これで、Gitの日本語文字化けが解消されました。
以上
Discussion