その他
    ホーム技術発信DoRubynfkで文字コードを変換してみよう。

    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」ということになります。

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

    今回は以上になります。

    それではまた次回。 

    モバイルバージョンを終了