0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PowerShellで文字化け? .gitignoreファイルの保存形式に要注意だった話

Posted at

はじめに

VSCode + Git + PowerShell の環境で .gitignore を編集していた際に、PowerShellで中身を確認したところ文字化けが発生しました。原因とその対処法を簡潔にまとめます。


発生した問題

  • PowerShellで .gitignoretype コマンドで表示した際、日本語コメントが文字化けする

原因の理解

🔸 UTF-8とBOMの違い

  • UTF-8には BOM付き(with BOM)BOM無し(without BOM) がある
  • BOMとは "Byte Order Mark" の略で、ファイルの先頭に文字コード情報を記述するメタデータのようなもの

🔸 PowerShellの仕様

  • PowerShellはBOM無しのUTF-8を正しく認識できないことがあり、Shift_JISなどで誤解釈して文字化けが発生

🔸 .gitignore などの設定ファイルとBOMの相性の悪さ

  • .gitignore は Git が「各行を1つのパターン」として読み込む、非常に単純なテキスト処理の対象です
  • そのため、BOM付きで保存するとファイルの先頭(1行目)に見えないBOMバイトが追加され、Gitがその行を正しく解釈できなくなることがあります
  • 例:本来は .venv/ と記述していたつもりが、Gitから見ると \ufeff.venv/ のように見えてしまい、無視ルールが機能しなくなる
  • 特に .env.dockerignore.gitattributes なども同様で、単純なテキスト行マッチに依存する構成ファイルではBOMは百害あって一利なしです

解決方法

.gitignore などの構成ファイル

  • UTF-8 (BOM無し) で保存する(デフォルトでOK)
  • PowerShellで文字化けしても、.gitignore の機能には影響なしと割り切ってよい

気づきと学び

  • 文字コードの細かい違いが、開発の進行を不意に妨げることがある
  • ただし、重要なのは「実害があるかどうか」「進行に支障が出るか」を冷静に判断すること
  • 今回は、.gitignore はBOM無しで問題ないこと、PowerShellは表示上の問題だけだと理解した上で、気になる部分を再保存だけして先に進む判断をした

おわりに

細かいところが気になる性格は、時に開発のブレーキになります。ただし、原因を理解し、自分の中で区切りをつけて進むこともまた必要。自分自身の学びとして記事にしておきます。この記事が、同じような違和感やつまずきに出会った方の参考になれば幸いです。


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?