今回の記事では、テキストファイルのエンコーディングを、シフト JIS から BOM あり/なしの UTF-8 に変換するバッチプログラムを紹介します。
内容が Excel から少し離れますが、次の記事で CSV ファイルの文字化け問題を取り上げる予定で、それに関連して Windows でのテキストエンコーディングの話題を本記事として切り離し、先行公開するものです。
【本記事のバッチは非推奨です】
改善された最新版の UTF-8 変換バッチを公開しました。
本記事のバッチは非推奨とさせていただきます。
本記事の一部バッチにあった不具合を解消したうえ、信頼性、使い勝手もよくなっていますので、今後はこちらのご利用をよろしくお願いいたします。 www.shegolab.jp【更新 2018/05/12】 バッチプログラムを一部修正しました。Windows 10 の UTF-8 サポートへの対応です。(追記参照)
Windows のテキストエンコーディング事情
そもそもなぜ Windows でよく文字化けするのでしょうか。
ちゃんと説明すると長くなるのですが、一言でいえばそれは Windows が、ヘンクツだからです。
もう少し詳しく説明すると Windows を作った世界的企業である某社の中の人たちが、ヘンクツだからです。
現在、インターネットやコンピュータで主流となっているテキストファイルのエンコーディング方式は、国際標準規格の「UTF-8」と呼ばれているものです。
これにより、テキストファイルは国や言語、システムの種類によらずに交換できるようになっています。
しかしヘンクツな Windows 環境では、旧来の「シフトJIS(Shift_JIS)」という日本語専用の方式をかたくなに使い続けており、世界標準の UTF-8 のファイルを開いても文字化けして読めないのです。
もちろん、国際的 OS である Windows さんのほうでもだいぶ前から UTF-8 に対応してはいるのですが、これまたヘンクツなことに、それは「BOM 付き UTF-8」という、非常に不可解な方式で、言わば「オレオレ UTF-8 」とでも呼べるものなのです。
このオレオレ UTF-8 のファイルは、他システムとのやり取りするとなると、かえって不具合を起こす原因となるという困りものです。