class Encoding::InvalidByteSequenceError
Raised byEncoding andString methods when the string being transcoded contains a byte invalid for the either the source or target encoding.
Public Instance Methods
Source
static VALUEecerr_destination_encoding(VALUE self){ return rb_attr_get(self, id_destination_encoding);}Returns the destination encoding as an encoding object.
Source
static VALUEecerr_destination_encoding_name(VALUE self){ return rb_attr_get(self, id_destination_encoding_name);}Returns the destination encoding name as a string.
Source
static VALUEecerr_error_bytes(VALUE self){ return rb_attr_get(self, id_error_bytes);}Returns the discarded bytes whenEncoding::InvalidByteSequenceError occurs.
ec =Encoding::Converter.new("EUC-JP","ISO-8859-1")beginec.convert("abc\xA1\xFFdef")rescueEncoding::InvalidByteSequenceErrorp$!#=> #<Encoding::InvalidByteSequenceError: "\xA1" followed by "\xFF" on EUC-JP>puts$!.error_bytes.dump#=> "\xA1"puts$!.readagain_bytes.dump#=> "\xFF"end
Source
static VALUEecerr_incomplete_input(VALUE self){ return rb_attr_get(self, id_incomplete_input);}Returns true if the invalid byte sequence error is caused by premature end of string.
ec =Encoding::Converter.new("EUC-JP","ISO-8859-1")beginec.convert("abc\xA1z")rescueEncoding::InvalidByteSequenceErrorp$!#=> #<Encoding::InvalidByteSequenceError: "\xA1" followed by "z" on EUC-JP>p$!.incomplete_input?#=> falseendbeginec.convert("abc\xA1")ec.finishrescueEncoding::InvalidByteSequenceErrorp$!#=> #<Encoding::InvalidByteSequenceError: incomplete "\xA1" on EUC-JP>p$!.incomplete_input?#=> trueend
Source
static VALUEecerr_readagain_bytes(VALUE self){ return rb_attr_get(self, id_readagain_bytes);}Returns the bytes to be read again whenEncoding::InvalidByteSequenceError occurs.
Source
static VALUEecerr_source_encoding(VALUE self){ return rb_attr_get(self, id_source_encoding);}Returns the source encoding as an encoding object.
Note that the result may not be equal to the source encoding of the encoding converter if the conversion has multiple steps.
ec =Encoding::Converter.new("ISO-8859-1","EUC-JP")# ISO-8859-1 -> UTF-8 -> EUC-JPbeginec.convert("\xa0")# NO-BREAK SPACE, which is available in UTF-8 but not in EUC-JP.rescueEncoding::UndefinedConversionErrorp$!.source_encoding#=> #<Encoding:UTF-8>p$!.destination_encoding#=> #<Encoding:EUC-JP>p$!.source_encoding_name#=> "UTF-8"p$!.destination_encoding_name#=> "EUC-JP"end
Source
static VALUEecerr_source_encoding_name(VALUE self){ return rb_attr_get(self, id_source_encoding_name);}Returns the source encoding name as a string.