From: OHARA Shigeki Date: 2014-07-01T13:06:39+09:00 Subject: [ruby-list:49859] Re: encoding of backtrace 大原です。 From: Nobuyoshi Nakada Subject: [ruby-list:49857] Re: encoding of backtrace Message-ID: <53B11A09.60902@ruby-lang.org> Date: Mon, 30 Jun 2014 17:04:25 +0900 > 「敢えて」というほど意図的ではありませんが、そういう状況でどうするべき > か未定ということはあります。 > > > さらにコードなどを調べずに聞いてしまいますが、 > > これは仕組みとしてはどういうふうになっているのでしょうか? > > $stderr を通る物は全て set_encoding の指定に従って > > 変換されると思っていたのですが (そこから勘違いしてるかもしれませんが) 、 > > backtrace は変換されないのは何故だろうという疑問です。 > > このエラーメッセージが出るのは、script上ではrescueされずにプログラム全 > 体が終了するときです。うっかり余計なことをしていると二重にエラーになっ > てしまう危険性もあり、可能な場合はrubyのオブジェクトを介さずにCレベルで > そのまま出すようになっています。 上記の説明で疑問はクリアになりました。 回答ありがとうございました。 > > IO.stdio_set_encoding() があると便利なのかなと思いました。 > > もっとも、これでもせいぜい 3 行が 1 行になる程度ですが。 > > 新機能は https://bugs.ruby-lang.org/projects/ruby-trunk/issues/new で。 もう少し考えて、妥当そうなら出してみたいと思います。 # キリ番には一足遅かった……。 ---- OHARA Shigeki (大原 重樹)