ホーム DoRuby nfkで文字コードを変換してみよう。

nfkで文字コードを変換してみよう。

この記事はアピリッツの技術ブログ「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」ということになります。

なお、変換前の文字コードが分からない場合は、変換後の文字コードだけを指定しても、変換前の文字コードを予想して変換してくれます。

今回は以上になります。

それではまた次回。 

記事を共有

最近人気な記事