この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
こんにちは。タジです。
今回は、nkfライブラリで文字コードを変換する方法です。
nkfライブラリはnkfコマンドと同じ機能を持っており、rubyに標準で添付されているライブラリです。JIS、EUC-JP、Shift-JIS、UTF-8をかなり簡単に変換できます。
使い方も簡単です。
以下はShift-JISで書かれたテキストである「data.txt」を、UTF-8に変換する場合です。
require ‘nkf’
File.open(data.txt) do | f |
text = NKF.nkf( “-Sw” , f )
p text
end
簡単に解説します。
まずライブラリを読み込む時のお約束であるrequireでnkfライブラリを読み込みます。
続いて変換したいtextファイルである「data.txt」を読み込みます。
あとは変換した内容を表示するだけですね。
肝心のNKFライブラリを使っている部分は、()内の引数に変換前の文字コードと変換後の文字コードを指定しています。
-jがJIS、-eがEUC-JP、-sがSHIFT-JIS、-wがUTF-8を表しており、変換前が大文字、変換後が小文字という形で指定します。
今回はSHIFT-JISからUTF-8なので、引数が「-Sw」ということになります。
なお、変換前の文字コードが分からない場合は、変換後の文字コードだけを指定しても、変換前の文字コードを予想して変換してくれます。
今回は以上になります。
それではまた次回。