【ruby】【rails】csvでおなじみのKconv触ってみた。
必要なデータはCSV形式で良いですか?
営業さんやマーケッターとやり取りするエンジニアなら一回はこの言葉を聞いたこと
あるかと思います。
ちょいちょい文字コードを変換するぐらいならやったことがあります!
(別に大したことしてない。。。)
【DB】【CSV】CSVに泣く前に見直したいたった3つのこと。
http://g08m11.hateblo.jp/entry/2014/05/02/232859
今回は「kconv」を使ったのでそのやり方をメモ。
kconvって何?
日本語の文字コード変換はこれだけで事足りるという驚きのruby標準の文字コードエンコーディングを変換するためのモジュールです。
Unicode 系の変換は出来ませんが、Shift_JIS, EUC-JP, ISO-2022-JP の相互変換が可能です。
railsだとどうやって使うの?
まずrubyの使い方
newstring = Kconv.kconv(string, Kconv::JIS, Kconv::AUTO) newstring = Kconv.tojis(string)
であったり
newstring = string.kconv(Kconv::JIS, Kconv::AUTO) newstring = string.tojis
といった使い方。
railsの使い方
railsも使い方は変わらないです。
ただ、requireを使用します。
【前提条件】
【書き方】
tsv_string = File.read(tsv_file).kconv({出力したい文字コード}, {変換したい文字コード})
require 'kconv' # 基本 csv_string = File.read(csv_file).kconv(Kconv::UTF8, Kconv::EUC) # 「上記の基本」から出力したい文字コードをshift_jisに変更する場合 tsv_string = File.read(csv_file).kconv(Kconv::SJIS, Kconv::EUC) # 「上記の基本」から変換したい文字コードを変更する場合 tsv_string = File.read(tsv_file).kconv(Kconv::UTF8, Kconv::UTF8)
これって初めて見る人によっては
「複数の文字コードを出力指定」出来るの?すげぇ!
って見えますが全然違うので注意しましょう!
僕には一瞬ですがそう見えました。。。