Klasse Encoding::InvalidByteSequenceError
Ausgelöst von Encoding und String Methoden, wenn die umgewandelte Zeichenkette ein Byte enthält, das für die Quell- oder Zielkodierung ungültig ist.
Öffentliche Instanzmethoden
Source
static VALUE
ecerr_destination_encoding(VALUE self)
{
return rb_attr_get(self, id_destination_encoding);
}
Gibt die Zielkodierung als Kodierungsobjekt zurück.
Source
static VALUE
ecerr_destination_encoding_name(VALUE self)
{
return rb_attr_get(self, id_destination_encoding_name);
}
Gibt den Namen der Zielkodierung als Zeichenkette zurück.
Source
static VALUE
ecerr_error_bytes(VALUE self)
{
return rb_attr_get(self, id_error_bytes);
}
Gibt die verworfenen Bytes zurück, wenn Encoding::InvalidByteSequenceError auftritt.
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
Source
static VALUE
ecerr_incomplete_input(VALUE self)
{
return rb_attr_get(self, id_incomplete_input);
}
Gibt true zurück, wenn der Fehler bei ungültiger Byte-Sequenz durch ein vorzeitiges Ende der Zeichenkette verursacht wird.
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
Source
static VALUE
ecerr_readagain_bytes(VALUE self)
{
return rb_attr_get(self, id_readagain_bytes);
}
Gibt die Bytes zurück, die erneut gelesen werden müssen, wenn Encoding::InvalidByteSequenceError auftritt.
Source
static VALUE
ecerr_source_encoding(VALUE self)
{
return rb_attr_get(self, id_source_encoding);
}
Gibt die Quellkodierung als Kodierungsobjekt zurück.
Beachten Sie, dass das Ergebnis nicht unbedingt mit der Quellkodierung des Kodierungs-Konverters übereinstimmen muss, wenn die Konvertierung mehrere Schritte umfasst.
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
static VALUE
ecerr_source_encoding_name(VALUE self)
{
return rb_attr_get(self, id_source_encoding_name);
}
Gibt den Namen der Quellkodierung als Zeichenkette zurück.