2015-07-27 :-(
_ [ruby][gnuplot][グラフ]ruby gnuplot でグラフを出力したが LANG を設定してなかったので文字化けした
手元では動作確認していて、いざ crontab に登録して実行してみたら文字化けしていた。なんでだろ~なんでだろ~と 0.3 秒ほど crontab -l を眺めた
% crontab -l #MAILTO="miwarin@gmail.com" MAILTO="" PATH=/usr/pkg/bin:/usr/pkg/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/localbin:/usr/local/sbin
もしかして
% env -i PATH=/usr/bin:/bin:/usr/pkg/bin:/usr/local/bin ruby22 g01.rb
当たりだった。手元でも再現した。

しかも怒られていた。
Could not set character size when opening font "arial", using internal non-scalable font
LANG をつけるのが正解。
% env -i LANG=ja_JP.UTF-8 PATH=/usr/bin:/bin:/usr/pkg/bin:/usr/local/bin ruby22 g01.rb

crontab にも LANG を設定しましょうというオチだった。他のプログラム? 知らんね。
% crontab -l #MAILTO="miwarin@gmail.com" MAILTO="" PATH=/usr/pkg/bin:/usr/pkg/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/localbin:/usr/local/sbin LANG=ja_JP.UTF-8
こういうコード。example の sin_wave.rb まま
#: coding utf-8
require "gnuplot"
Gnuplot.open do |gp|
Gnuplot::Plot.new( gp ) do |plot|
plot.terminal "png"
plot.output File.expand_path("../sin_wave.png", __FILE__)
plot.xrange "[-10:10]"
plot.title "Sin カーブ"
plot.ylabel "sin(x)"
plot.xlabel "x"
plot.data << Gnuplot::DataSet.new( "sin(x)" ) do |ds|
ds.with = "lines"
ds.linewidth = 4
end
end
end
puts 'created sin_wave.png'
[ツッコミを入れる]



