« 090624-朝、家を出るまであと何分?を表示するrubyスクリプト | トップページ | 090625-天気予報を取得するRubyスクリプトをWindowsで書いてみた »

090625-Windowsでのrubyの文字化け対策

今まではずっとSJISを意識せずに使っていたのだが、Googleカレンダーの予定を取得しようとして文字化けに直面した。試行錯誤の結果、以下の2点がわかった。

  • 受け取る文字コードは$KCODE(環境変数?)で指定する
  • 文字コードを変換して出力する場合は、kconvライブラリをrequireして、出力する文字列のあとに「.tosjis」のように文字コード変換メソッドを付ける。

以下のコードは、実際にGoogleカレンダーの予定を「UTF-8」で取得し、「SJIS」に変換して出力している。



$KCODE = 'UTF-8'
require 'kconv'
require 'gcalapi'
 
# アカウントメールアドレス
mail = "xxxxxxxx@gmail.com"
# パスワード
pass = "xxxxxxxx"
# Googleカレンダーの「カレンダー設定」画面から取得した非公開URL
feed = "http://www.google.com/calendar/feeds/xxxxxxxx%40gmail.com/private-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/basic"
 
srv = GoogleCalendar::Service.new(mail, pass)
cal = GoogleCalendar::Calendar::new(srv, feed)
events = cal.events
 
events.each do |event|
  puts event.title.tosjis
  puts event.desc.tosjis
end

|

« 090624-朝、家を出るまであと何分?を表示するrubyスクリプト | トップページ | 090625-天気予報を取得するRubyスクリプトをWindowsで書いてみた »

ruby」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/18365/45445222

この記事へのトラックバック一覧です: 090625-Windowsでのrubyの文字化け対策:

« 090624-朝、家を出るまであと何分?を表示するrubyスクリプト | トップページ | 090625-天気予報を取得するRubyスクリプトをWindowsで書いてみた »