Windowsでは、これまでテキストファイル(テキストデータ)の文字コードとして「Shift_JIS」が使われることが多かったですが、最近ではWebを始めとして「UTF-8」が使われるケースが多くなっており、Windowsでテキストファイルの文字コードを変換したい場面が増えています。
そこでここでは、Windowsでテキストファイル(テキストデータ)の文字コードを変換する方法を紹介します。
目次
メモ帳を使った方法
テキストファイルの文字コードを変換するもっとも簡単な方法は、Windowsに標準搭載のテキストエディタ「メモ帳」を使った方法です。
まず、文字コードを変換したいテキストファイルをメモ帳で開いて、「ファイル」メニューから「名前を付けて保存」を選択します。
「名前を付けて保存」画面が表示されたら「文字コード」のプルダウンから変換先の文字コードを選択して「保存」をクリックします。
選択できる文字コードは、以下のとおりです。
- ANSI(Shift_JIS)
- UTF-16 LE
- UTF-16 BE
- UTF-8
- UTF-8(BOM付き)
以上で、文字コードを変換することができます。
PowerShellコマンドレットを使った方法
Windowsに標準搭載のコマンドインターフェース「PowerShell」でも、Get-ContentコマンドレットとOut-Fileコマンドレットを組み合わせて、テキストファイルの文字コードを変換することができます。
> Get-Content -Encoding <変換元ファイルの文字コード> <変換元ファイルのパス> | Out-File -Encoding <変換したい文字コード> <変換後のファイルのパス>
たとえば、文字コードがUTF-8のテキストファイルの文字コードをANSI(Shift_JIS)に変換したいときは、以下のようにコマンドを実行します。
> get-content -Encoding UTF8 sample.txt | Out-File -Encoding Default sample_sjis.txt
指定できる主な文字コードは、以下のとおりです。
- Ascii:ASCII (7 ビット) 文字セット
- BigEndianUnicode:UTF-16 BE
- Default:システムのアクティブなコード ページ (通常は ANSI) に対応する文字コード
- Unicode:UTF-16 LE
- UTF7:UTF-7
- UTF8:UTF-8
- UTF32:UTF-32 LE
nkf(Network Kanji Filter)を使った方法
「nkf(Network Kanji Filter)」は、コマンド操作で文字コードを変換できる無料ツールで、古くから文字コード変換ツールとして人気があります。
nkfコマンドの入手
Windows向けのnkfツールは、以下のサイトから入手できます。
nkf.exe nkf32.dll Windows用の詳細情報 : Vector ソフトを探す!
ダウンロードしたファイルを展開し「vc2005win32(98,Me,NT,2000,XP,Vista,7)Windows-31J」フォルダーの中にある「nkf32.exe」という実行ファイルを、パスの通ったフォルダーに配置すれば準備完了です。
nkfコマンドの使い方
nkfは「nkf ファイル名」でファイルを指定したり、パイプなどを利用して標準入力から受け取ったテキストデータを変換して、標準出力に書き出すことができます。
文字コードを指定する場合は、次のようなオプションを指定します。これ以外のオプションについては、ツールに付属しているヘルプファイル(nkf.txt)を参照してみてください。
ちなみに、オプション指定なしで実行するとShift_JISに変換してくれます。
オプション | 説明 |
---|---|
-j | JISコード |
-e | EUCコード |
-s | Shift_JISコード |
-w | UTF-8(BOMなし) |
-w8 | UTF-8(BOMあり) |
-w16 | UTF-16(ビッグ・エンディアン。BOMあり) |
-w16L | UTF-16(リトル・エンディアン。BOMあり) |
たとえば、文字コードがUTF-8のテキストファイルをShift_JISに変換して画面に表示したいときは、以下のようにコマンドを実行します。
> type sample.txt | nkf
上の例では、パイプを使って変換していますが、次のように直接ファイルを指定して変換して、画面に表示することもできます。
> nkf -s sample.txt
あとがき
文字コードを変換したいファイルの数が少なければメモ帳で、ファイル数が多いならコマンドを使ってスクリプト化すれば一括での変換も可能でしょう。