From: "NARUSE, Yui" Date: 2008-09-15T14:12:27+09:00 Subject: [ruby-core:18598] Re: [Feature #565] Encoding::compatible? should also accept Encoding objects as parameters Hi, Michael Selig wrote: > Feature #565: Encoding::compatible? should also accept Encoding objects as parameters > http://redmine.ruby-lang.org/issues/show/565 > > Author: Michael Selig Status: Open, Priority: Normal > > Some software needs to do transcoding of strings or regexps to be compatible with incoming data from either > a file or strings passed as parameters etc. It needs to say things like: > > Encoding.compatible?(Encoding.default_external, str) or: Encoding.compatible?(io.internal_encoding, > Encoding.find("ASCII")) etc. > > It is possible to do this by creating dummy strings in the encodings, and passing those, but in that case > Ruby seems to try to optimize them based on content (eg: null strings), and so can say that the strings are > compatible when in fact in general the encodings are not. eg: > Encoding.compatible?("".force_encoding("UTF-16BE"), "".force_encoding("ASCII")) => # > > So the request is to allow Encoding::compatible? to accept Encoding objects as well as strings and Regexps. r19357 allows Encoding::compatible? to accept Encoding and IO objects. -- NARUSE, Yui