[Ruby] Shift_JIS(CP932)のテキストファイルを開いてUTF-8 で処理する

投稿者: | 2015/05/19

未だにShift_JIS 全盛の職場ですので、テキストデータを扱う場合は、当然文字コードの変換が必要になります。
Perl だと こんな感じでやっていたのですが、Ruby だと以下の様になります。

# ファイルパス
FILE_PATH = './hoge.txt'

# CP932(Shift_JIS)でファイルを開く
File.open(FILE_PATH, encoding: Encoding::CP932) { |file|

  # 1行ずつ読み込み
  while row = file.gets

    # UTF-8に変換してから、改行除去
    row_utf8 = row.encode(Encoding::UTF_8).chomp!

    # ここで行に対して行う処理を書く(例:カンマで分割)
    values = row_utf8.split(',')

  end # while row
}

こんな感じ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータがどう処理されているか知りたい方はこちらをお読みください