成瀬です。

2009/09/29 14:02, Yugui wrote:
> 2009年9月29日12:31 "Martin J. Drst"<duerst / it.aoyama.ac.jp>:
>> 要するに \xXX\xXX の代わりで \x{XXXX} で「ここは一文字」を示すという小手ですよね。
 >> ちょっとだけ良くなるかと思いますが、特に一バイト文字コードの場合では
 >> 文字コードを推測するのは難しいかと思います。
 >> まー、Unicode 系に変換 したくなかったらそのぐらいしかないですよね。
 >> 後は文字コードを何かの形で明 記するとか。
>
> それは、\x{XXXX}の属する文字集合を明記するというようなお話なんでしょうか。

Ruby M17Nは文字集合に関する情報は持っていませんので、
やるとしたら元のエンコーディングでしょうね。
まぁ、文字ごとに表示しても以下のような感じになってしまい、
うれしいかは微妙に感じますが。
\x{XXXX}(Windows-31J)\x{XXXX}(Windows-31J)\x{XXXX}(Windows-31J)

> String#inspectはエンコーディングを明記してくれると嬉しいと常々思っておりました。
 > 冗長になるという反対意見もあるかと思いますが、
 > エンコーディング違いで失敗したテストケースの原因を探るのに
 > とても役立ちます。実際、rubyspecの、Ruby 1.9を意識していない
 > descriptionにその手の失敗が幾つかありまして、
 > これを調べるのは面倒だな、と思っていたところでした。

これ手元でちょっと試してみたんですがだめですね。
str.inspect.inspect != str.inspect になるせいで、
大量にテストが失敗します。
やっぱりrubyspec や miniunit などのテストドライバのほうで
エンコーディングを表示するのが正解なように思います。

-- 
NARUSE, Yui  <naruse / airemix.jp>