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 #1

Updated by toshi_a 初音 over 9 years ago

  • Status changed from 新規 to レビュー待ち
  • Assignee set to Izumi Tsutsui

明示していませんがUTF8以外の環境については、何も考えていませんでした。
最初の方法で対応して見ました。現在0.1ブランチでのみこの修正を取り込んでいます。確認お願いできますか。

Actions #2

Updated by Izumi Tsutsui over 9 years ago

  • Status changed from レビュー待ち to 解決

r729 の 0.1 で LANG 未設定の環境でも起動するのを確認しました。ありがとうございます。

Actions #3

Updated by toshi_a 初音 over 9 years ago

  • Status changed from 解決 to 終了
Actions

Also available in: Atom PDF