From: Nobuyoshi Nakada Date: 2008-01-10T11:40:43+09:00 Subject: [ruby-dev:33002] Re: binmode and ASCII-8BIT なかだです。 At Thu, 10 Jan 2008 02:26:30 +0900, Yukihiro Matsumoto wrote in [ruby-dev:32998]: > * nil と ASCII-8BIT が同じ扱いのメソッドと違う扱いのメソッドがある > > StringおよびEncodingではnilはエンコーディングとして指定でき > ません。IOにおいては「エンコーディングを指定しない」という意 > 味になります。それ以外で「違う扱い」があれば教えてください。 Stringでというのはforce_encodingでしょうか。 $ ./ruby -e 'p "\u3000".force_encoding(nil).encoding' # というように、現状ではエンコーディング指定としてEncoding、エンコー ディング名またはnilを受け付けますが、直すべきでしょうか。 Encoding.findについては、エンコーディング名からEncodingオブジェ クトを返すメソッドなので、String以外Encodingもnilも受け付けませ ん。これは上記の「エンコーディング指定」とは別物であると考えてい ます。force_encodingなども本来Encodingオブジェクトを受け取るべき だけれど、簡便さのためにエンコーディング名であれば自動的に Encoding.findしているだけで。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦