Skip to content
2月 23 / rakkyoo

Rubyで文字コードを変換 ‘kconv’

あまり頭を使わずに,文字コードを直したいときは,標準添付ライブラリの「kconv」を使っています.
詳しくは,この辺にかいてあるのですが,

とっても便利です.

特に,エクセルで加工したファイルなどの場合は,「Shift_JIS」となっていて,ruby上では「UTF-8」の方が使い勝手が良かったりするので,kconvを多用しています.

1
2
3
4
5
6
7
8
# _*_ coding: utf-8 _*_
require 'kconv'
 
str_sjis = "文字列".tosjis
str_utf8 = "文字列".toutf8
 
puts "#{str_sjis.encoding} => #{str_sjis}"
puts "#{str_utf8.encoding} => #{str_utf8}"

出力としては,
Ruby  bash  100×40
こんな感じになります.ターミナルのエンコードをUTF-8にしているので,Shift_JISでは文字化けしていますが,しっかりとエンコードされています.

UTF-8に変換したい場合は文字列の後ろに,「.toutf8」と書くだけ.
Shift_JISに変換したい場合は,文字列の後ろに「.tosjis」と書くだけ.
っととっても直感的で簡単です.

    ほかにも,eucやjisにも変換できるみたいですね↓

    .toeuc EUC-JP に変換
    .tosjis Shift_JIS に変換
    .tojis ISO-2022-JP (JIS) に変換
    .toutf8 UTF-8 に変換
    .toutf16 BOM 無し UTF-16BE に変換

使い方は,まだまだあるみたいですが,取り急ぎの用事では,これだけで十分です.

utf-8でcsvファイルを出力したりすると,excel等で開いたり,windowsパソコンで開いたりすると文字化けするので,excelで開くことのあるcsvファイルを出力するときには,必ず「.tosjis」とつけています.

難しいイメージのある文字コードですが,rubyでファイルを少し加工するくらいの処理ではとっても簡単です.

[`twib` not found]

Leave a comment

CAPTCHA


This blog is kept spam free by WP-SpamFree.