はじめに
こんにちは。
本番環境などでやらかしちゃった人 Advent Calendar 2025
https://qiita.com/advent-calendar/2025/yarakashi
私も長年システムに携わるにあたって、それなりにやらかしてしまうこと、ありました。
その中の一つを今回書こうと思います。
なにをやらかした?
「設定ファイルの変更を横着して、普段と違うテキストエディタを使った結果」 と言うことなのですが…
とあるシステムにて、開発をしていて、既存の設定ファイルを変更する必要があったんです。
設定ファイルを変更するにあたって、テキストエディタを使いますよね。
修正の内容を変更して、保存。デプロイして、テストを行うと、不明なエラーが発生し始めます。
実はそのシステム携わって日が浅く、詳細がわからず、混乱します。
設定ファイルを変更する前まで、動作はしていたことから
プログラム自体が悪いわけではなく、設定ファイルが何かしら悪い、と考えます。
そこでふと思ったんですね、自分がどのように設定ファイルを修正したか…
振り返ると、設定ファイルを修正する際、普段使いのテキストエディタではなく、目についたWindows のメモ帳 を使って修正したんですね。
当時の Windows のメモ帳ですが
UTF-8 の保存に対して、BOM付きがデフォルトだったので
それに気が付かず、BOMがついてしまったことが原因だったのでした。
▼以下は、Windows 11 のメモ帳なので、当時はUIが若干異なっていますが、エンコードが「UTF-8 (BOM 付き)」となっていました。

ここまでわかるまで、2時間程度かかってしまいました…
そもそも BOM ってなによ?
「Byte Order Mark」というものらしいです。
▼わかりやすい記事がありました。ありがとうございます!
では、実際に試してみましょう。
▼メモ帳で、a と入力して a.txt というファイル名で、UTF-8 (=BOM無し) で出力してみます。

▼メモ帳で、a と入力して a2.txt というファイル名で、UTF-8(BOM付き) で出力してみます。

▼ a2.txt は 0~2 まで EF BB BF という BOM が付与されていることがわかります。

結論
- 最新のWindows11 では、メモ帳のデフォルトは、「BOM無し」になりましたが、Windows Serverなどで操作する際は、注意しましょう!
- UTF-8 を利用しているときに発生する問題ではありますが、ファイルを保存する際、文字コードだけではなく、BOM有り、無しも気を付けましょう。
- いっそのこと、メモ帳は使わない!!! という選択肢もアリです!!
