class method
Encoding::Converter.asciicompat_encoding
(::Encoding::Converter::encoding enc) -> ::Encoding?
Encoding::Converter.asciicompat_encoding(string) → encoding or nil
Encoding::Converter.asciicompat_encoding(encoding) → encoding or nil
transcode.c
View on GitHub ↗
static VALUE
econv_s_asciicompat_encoding(VALUE klass, VALUE arg)
{
const char *arg_name, *result_name;
rb_encoding *arg_enc, *result_enc;
VALUE enc = Qnil;
enc_arg(&arg, &arg_name, &arg_enc);
result_name = rb_econv_asciicompat_encoding(arg_name);
if (result_name) {
result_enc = make_encoding(result_name);
enc = rb_enc_from_encoding(result_enc);
}
return enc;
}
Returns the corresponding ASCII compatible encoding.
Returns nil if the argument is an ASCII compatible encoding.
“corresponding ASCII compatible encoding” is an ASCII compatible encoding which can represents exactly the same characters as the given ASCII incompatible encoding. So, no conversion undefined error occurs when converting between the two encodings.
Example
Encoding::Converter.asciicompat_encoding("ISO-2022-JP") #=> #<Encoding:stateless-ISO-2022-JP> Encoding::Converter.asciicompat_encoding("UTF-16BE") #=> #<Encoding:UTF-8> Encoding::Converter.asciicompat_encoding("UTF-8") #=> nil