まず文字コードを確認する
Notepad++ は、ファイルをどの文字コードで読んでいるかを右下のステータスバーに表示します(UTF-8、UTF-8-BOM、ANSI、Shift-JIS など)。日本語版 Windows では、ANSI は Shift_JIS(CP932)のことです。エンコードのメニュー(英語表示では Encoding)には、混同しやすい 2 種類の項目があります。
- ANSI、UTF-8、UTF-8-BOM など(メニューの上側):今のバイトを別の文字コードで読み直すだけで、ファイルは変わりません。表示の設定です。
- ANSI に変換、UTF-8 に変換 など(メニューの下側):文字を新しい文字コードで書き直します。保存するとファイルが変わります。
ケース 1:縺薙s… と表示される
ファイルは UTF-8 で保存されているのに、Notepad++ が ANSI(Shift_JIS)として読んでいます。エンコードのメニューで UTF-8 を選ぶと、すぐに正しく表示されます。ここで「変換」を選んではいけません。化けた 縺薙s が本当の文字として保存されてしまいます。
ケース 2:x82 のような黒い箱が並ぶ
ファイルは Shift_JIS で保存されているのに、UTF-8 として読まれています。まずエンコードのメニューで ANSI を選ぶか、文字セットの日本語の項目から Shift-JIS を選び、正しく表示されるのを確認します。EUC-JP のファイルなら同じ場所の EUC-JP です。そのうえで UTF-8 に変換 を選んで保存すると、ファイルは UTF-8 になります。
ケース 3:化けた文字がファイルに保存されている
UTF-8 を選んでも 縺薙s のままなら、化けた文字がすでに保存されています。こうなるとメニューでは確実に直せません。正しい行と化けた行が混ざっている場合はなおさらです。上の枠にファイルをドロップすれば、Mojibuster が化けた箇所だけを直し、変更箇所をすべて表示します。仕組みは 文字化けとは で解説しています。
文字化け
鄙サ險ウ縺ッ遒コ隱肴ク医∩縲よ擲莠ャ繝サ螟ァ髦ェ繝サ莠ャ驛ス繝サ逾樊虻縲√☆縺ケ縺ヲ豁」縺励>
修正後
翻訳は確認済み。東京・大阪・京都・神戸、すべて正しい
新しいファイルは UTF-8 で作る
設定画面の新規ドキュメントの項目(英語表示では Settings → Preferences → New Document)で、新しいファイルの文字コードを UTF-8 にしておきます。Excel で開く CSV には UTF-8-BOM が向いています(Excel の CSV 文字化け)。Windows PowerShell 5.1 のスクリプトにも BOM が必要です(PowerShell の文字化け)。
サクラエディタなど、日本でよく使われるほかのエディターにも、文字コードを指定して開き直す機能と、保存時に文字コードを選ぶ機能があります。考え方は同じで、開き直すのは表示だけ、保存して初めてファイルが変わります。
よくある質問
UTF-8 と UTF-8-BOM の違いは?
文字の保存方法は同じです。UTF-8-BOM はファイルの先頭に 3 バイトの目印を付け、Excel や古いソフトが UTF-8 だと判別できるようにします。
Notepad++ が文字コードを間違えて判別するのはなぜですか?
BOM のないファイルには文字コードの情報がないため、Notepad++ は中身から推測するしかありません。短いファイルや日本語の少ないファイルほど、推測を外しやすくなります。
複数のファイルをまとめて変換できますか?
Notepad++ ではマクロやプラグインが必要です。Mojibuster では 1 ファイルずつですが、それぞれ数秒で終わります。