操作
バグ #455
完了Encoding::InvalidByteSequenceError でmikutterが起動しない環境がある
プラグイン名:
ブランチ:
クラッシュする:
説明
http://www.re.soum.co.jp/~fukaumi/ml/netbsd/201203/msg00005.html
のNetBSDのメーリングリストで挙がった話です。
NetBSDのようなておくれた環境だけの話だと思いますが、
環境変数 LANG が設定されてない、もしくは ja_JP.eucJP 等の
UTF-8 以外の設定になっている環境で mikutter を起動すると
/usr/pkg/lib/ruby/1.9/json/common.rb:146:in `encode': "\xE6" on US-ASCII (Encoding::InvalidByteSequenceError)
のようなエラーメッセージが出て起動しないことがあるようです。
原因は上記のメールにあるとおり
mikutter/core/addon/openimg/pattern_file.json
の中の「携帯百景」が UTF-8 で書いてあって、かつ
Rubyに対して明示的にエンコーディングが指定されていない
ということなので
- mikutter/core/utils.rb の file_get_contents(fn) で
open(fn, 'r')
になってるのを
open(fn, 'r:utf-8')
とする - 「(環境によっては) ruby を -Ku 付きで起動する」という説明を書く
- 「携帯百景」を漢字で書くのをやめる
というのが対策案ですが、Linuxだと環境変数LANGがUTF-8以外になっていることはほとんどないのでは
という気もするので、環境依存の問題という判断であれば却下でも構いません(wikiにでも書きます)。
操作