Method: IO#external_encoding
- Defined in:
- io.c
permalink #external_encoding ⇒ Encoding?
Returns the Encoding object that represents the encoding of the stream, or nil
if the stream is in write mode and no encoding is specified.
See Encodings.
13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13460 13461 |
# File 'io.c', line 13447
static VALUE
rb_io_external_encoding(VALUE io)
{
rb_io_t *fptr = RFILE(rb_io_taint_check(io))->fptr;
if (fptr->encs.enc2) {
return rb_enc_from_encoding(fptr->encs.enc2);
}
if (fptr->mode & FMODE_WRITABLE) {
if (fptr->encs.enc)
return rb_enc_from_encoding(fptr->encs.enc);
return Qnil;
}
return rb_enc_from_encoding(io_read_encoding(fptr));
}
|