Project

General

Profile

Actions

バグ #455

closed

Encoding::InvalidByteSequenceError でmikutterが起動しない環境がある

Added by Izumi Tsutsui over 9 years ago. Updated over 9 years ago.

Status:
終了
Priority:
通常
Assignee:
Target version:
プラグイン名:
ブランチ:
クラッシュする:

Description

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にでも書きます)。

Actions

Also available in: Atom PDF