class Encoding::InvalidByteSequenceError
Raised by Encoding and String methods when the string being transcoded contains a byte invalid for the either the source or target encoding.
Public Instance Methods
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/core/encoding.rbs, line 544
def destination_encoding: () -> Encoding
Returns the destination encoding as an encoding object.
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/core/encoding.rbs, line 552
def destination_encoding_name: () -> String
Returns the destination encoding name as a string.
() → String
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/core/encoding.rbs, line 569
def error_bytes: () -> String
Returns the discarded bytes when Encoding::InvalidByteSequenceError occurs.
ec = Encoding::Converter.new("EUC-JP", "ISO-8859-1") begin ec.convert("abc\xA1\xFFdef") rescue Encoding::InvalidByteSequenceError p $! #=> #<Encoding::InvalidByteSequenceError: "\xA1" followed by "\xFF" on EUC-JP> puts $!.error_bytes.dump #=> "\xA1" puts $!.readagain_bytes.dump #=> "\xFF" end
() → bool
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/core/encoding.rbs, line 595
def incomplete_input?: () -> bool
Returns true if the invalid byte sequence error is caused by premature end of string.
ec = Encoding::Converter.new("EUC-JP", "ISO-8859-1") begin ec.convert("abc\xA1z") rescue Encoding::InvalidByteSequenceError p $! #=> #<Encoding::InvalidByteSequenceError: "\xA1" followed by "z" on EUC-JP> p $!.incomplete_input? #=> false end begin ec.convert("abc\xA1") ec.finish rescue Encoding::InvalidByteSequenceError p $! #=> #<Encoding::InvalidByteSequenceError: incomplete "\xA1" on EUC-JP> p $!.incomplete_input? #=> true end
() → String
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/core/encoding.rbs, line 604
def readagain_bytes: () -> String
Returns the bytes to be read again when Encoding::InvalidByteSequenceError occurs.
() → Encoding
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/core/encoding.rbs, line 625
def source_encoding: () -> 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-JP begin ec.convert("\xa0") # NO-BREAK SPACE, which is available in UTF-8 but not in EUC-JP. rescue Encoding::UndefinedConversionError p $!.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
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/core/encoding.rbs, line 633
def source_encoding_name: () -> String
Returns the source encoding name as a string.