rb_encoding * rb_to_encoding(VALUE enc) { if (enc_check_encoding(enc) >= 0) return RDATA(enc)->data; return to_encoding(enc); }
mrb_encoding * mrb_to_encoding(mrb_state *mrb, mrb_value enc) { if (enc_check_encoding(mrb, enc) >= 0) return RDATA(enc)->data; return to_encoding(mrb, enc); }
/* * call-seq: * Encoding.find(string) -> enc * Encoding.find(symbol) -> enc * * Search the encoding with specified <i>name</i>. * <i>name</i> should be a string or symbol. * * Encoding.find("US-ASCII") #=> #<Encoding:US-ASCII> * Encoding.find(:Shift_JIS) #=> #<Encoding:Shift_JIS> * * Names which this method accept are encoding names and aliases * including following special aliases * * "external":: default external encoding * "internal":: default internal encoding * "locale":: locale encoding * "filesystem":: filesystem encoding * * An ArgumentError is raised when no encoding with <i>name</i>. * Only <code>Encoding.find("internal")</code> however returns nil * when no encoding named "internal", in other words, when Ruby has no * default internal encoding. */ static VALUE enc_find(VALUE klass, VALUE enc) { return rb_enc_from_encoding(to_encoding(enc)); }