T.H/ 2024年 9月 30日/ 技術

はじめに

こんにちは。T.H.です。
今回は、gitの小ネタです。

前提

プログラムコードの文字コードがShift-jisの環境下で必要な設定です。
レガシーなWindows&C++の環境を想定しています。

設定方法

Shift-jis環境下でgitの操作を行うと、日本語表示が化けるという現象が起きます。
これは、gitが基本的にutf-8を前提にしているためです。
gitのconfigファイルおよび、.gitattributeファイルに下記設定を行うことで解消が可能です。
恐らくはどのgitクライアントでも問題なく表示されるようになると思われます。

config

[core]
    quotepath=false
    pager = LESSCHARSET=utf-8 less
[diff "cp932"]
    textconv=iconv -f cp932 -t utf-8
[diff "sjis"]
    textconv=iconv -f sjis -t utf-8

.gitattribute (gitリポジトリ内に作成)

*.txt diff=sjis
*.c diff=cp932
*.cpp diff=cp932
*.h diff=cp932
*.txt working-tree-encoding=sjis
*.cpp working-tree-encoding=cp932
*.c working-tree-encoding=cp932
*.h working-tree-encoding=cp932

なお、configの

[i18n]
  commitEncoding

の設定項目はいかにもそれっぽいですが、こちらはコミットメッセージのエンコード指定です。通常の開発ではコミットメッセージまで文字コードが指定されていることは稀だと思います。

最後に

最近ではShift-jis環境の開発自体に触れることも少なくなってきたかと思います。
ですが、何かのきっかけでアサインされたときに戸惑う方も多そうなため、ちょっとしたメモとして記載させていただきました。

参考

About T.H

North Torch株式会社 プログラマ 技術的な経歴は.NETアプリケーションが一番長い。 その他はまだまだ勉強中。