Skip to content

codegrid/sjis-git-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Shift-JIS Git Tools

GitでShift-JISファイルを扱う際の文字化け防止ツールです。

概要

Shift-JISファイルが含まれるプロジェクトでgit diffgit showを実行すると、日本語部分が文字化けしてしまいます。このツールセットを使用することで、文字コードを自動判別して適切にUTF-8変換し、文字化けを防ぐことができます。

ファイル構成

  • git_sjis_diff.sh: 文字コード判別・変換スクリプト
  • .gitattributes.example: 設定例ファイル

セットアップ

1. スクリプトの配置

git_sjis_diff.sh を任意のディレクトリに配置し、実行権限を付与します。

chmod +x git_sjis_diff.sh

2. Git設定

git config --global diff.sjis-safe.textconv "/path/to/git_sjis_diff.sh"

3. プロジェクト設定

プロジェクトルートに .gitattributes ファイルを作成し、Shift-JISファイルに対してフィルターを適用します。

cp .gitattributes.example .gitattributes

必要に応じて、対象ファイルの拡張子を追加・削除してください。

使用方法

セットアップ完了後、通常通り git diffgit show を実行すると、Shift-JISファイルが文字化けすることなく表示されます。

git diff
git show HEAD
git log -p

動作原理

  1. Gitがdiffを表示する際、.gitattributes の設定に基づいて git_sjis_diff.sh が呼び出される
  2. スクリプトが nkf -g コマンドでファイルの文字コードを自動判別
  3. Shift-JIS(CP932)の場合のみ nkf -w でUTF-8に変換して出力
  4. その他の文字コードの場合はそのまま出力

必要な依存関係

  • nkf (Network Kanji Filter)
    • macOS: brew install nkf
    • Ubuntu: sudo apt install nkf

トラブルシューティング

文字化けが解消されない場合

  1. スクリプトに実行権限が付与されているか確認
  2. Git設定が正しく登録されているか確認: git config --list | grep textconv
  3. .gitattributes ファイルが正しく配置されているか確認
  4. 対象ファイルが .gitattributes の設定に含まれているか確認

パフォーマンス低下が気になる場合

.gitattributes で対象ファイルを限定することで、パフォーマンスへの影響を最小限に抑えることができます。全ファイルに適用すると処理が重くなる可能性があります。

About

GitでShift-JISファイルを扱う際の文字化け防止ツールです。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages