Feel Physics Backyard

HoloLensの出張授業をする会社で、教材を開発しています

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

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

 

 

 

 

 

 

 

 

以下のコードは、実際に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