[#44725] Set[Set[1]]==Set[Set[1]] は偽? — "5.5" <5.5@...>

5.5 です。

22 messages 2008/03/04

[#44782] $stdin.rewind が exec した子プロセスに伝わらない? — SATOH Fumiyasu <fumiyas@...>

さとうふみやす @ OSS テクノロジです。

11 messages 2008/03/17
[#44783] Re: $stdin.rewind が exec した子プロセスに伝わらない? — Kazuhiro NISHIYAMA <zn@...> 2008/03/17

西山和広です。

[ruby-list:44779] Re: Ann: Ruby-1.9.0-1 Windowsインストーラパッケージ

From: BathTimeFish 村岡正和 <muraoka@...>
Date: 2008-03-15 06:25:40 UTC
List: ruby-list #44779
村岡です。

> Kconv.kconv が入力のエンコーディングを要求するのは意図した仕様変更です。
> そのため、実際の問題はその前の locale.rb で、
>   mes = Kconv::kconv(mes, lc2kconv(@lang))
> において、mes に encoding が設定されているか、第三引数で入力の encoding を
> 明示的に指定しなければなりません。
>
> で、通常は mes には Encoding.default_external か US-ASCII が設定されるので、
> 問題は起きないはずですし、手元では起きていないのですが、どのような環境で動かしてます?
>   
Windows XP Pro SP2 です。
1.9.0はデフォルトからC:\Ruby-1.9.0 に変更してインストールしています。
また、1.8.6 を C:\Ruby としてインストールしています。

この辺は詳しくよくわかっていないので恐縮なんですが、試しに
mes = Kconv::kconv(mes, lc2kconv(@lang))
の前でmes.encodingを出力してみました。
p mes.encoding
mes = Kconv::kconv(mes, lc2kconv(@lang))
これでirbを実行すると、

C:\Ruby-1.9.0\bin>irb
#<Encoding:Windows-31J>
irb(main):001:0>

となりました。
で、教えていただいたソースの

case @lang
when /^ja/
mes = Kconv::kconv(mes, lc2kconv(@lang))

が気になったので、システムの環境変数をみてみると、 LANG="japanese"(たぶ
ん昔Cygwinで設定したやつ)があったので、これを削除して元のkconv.rbを実行
すると正常に実行できました。
環境変数にLANG="japanese"があったのが原因だったみたいです。


In This Thread

Prev Next