%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/cpanel/ea-ruby24/root/usr/share/ri/system/Encoding/Converter/
Upload File :
Create Path :
Current File : //opt/cpanel/ea-ruby24/root/usr/share/ri/system/Encoding/Converter/primitive_errinfo-i.ri

U:RDoc::AnyMethod[iI"primitive_errinfo:ETI"*Encoding::Converter#primitive_errinfo;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph;	[I"Nprimitive_errinfo returns important information regarding the last error ;TI"as a 5-element array:;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim;	[I"8[result, enc1, enc2, error_bytes, readagain_bytes]
;T:@format0o;
;	[I"4result is the last result of primitive_convert.;T@o;
;	[I"7Other elements are only meaningful when result is ;TI"H:invalid_byte_sequence, :incomplete_input or :undefined_conversion.;T@o;
;	[	I"Denc1 and enc2 indicate a conversion step as a pair of strings. ;TI"AFor example, a converter from EUC-JP to ISO-8859-1 converts ;TI"9a string as follows: EUC-JP -> UTF-8 -> ISO-8859-1. ;TI"NSo [enc1, enc2] is either ["EUC-JP", "UTF-8"] or ["UTF-8", "ISO-8859-1"].;T@o;
;	[I"Yerror_bytes and readagain_bytes indicate the byte sequences which caused the error. ;TI"'error_bytes is discarded portion. ;TI"Preadagain_bytes is buffered portion which is read again on next conversion.;T@o;
;	[I"
Example:;T@o;;	[5I""# \xff is invalid as EUC-JP.
;TI"9ec = Encoding::Converter.new("EUC-JP", "Shift_JIS")
;TI"7ec.primitive_convert(src="\xff", dst="", nil, 10)
;TI"p ec.primitive_errinfo
;TI"A#=> [:invalid_byte_sequence, "EUC-JP", "UTF-8", "\xFF", ""]
;TI"
;TI"R# HIRAGANA LETTER A (\xa4\xa2 in EUC-JP) is not representable in ISO-8859-1.
;TI"D# Since this error is occur in UTF-8 to ISO-8859-1 conversion,
;TI"A# error_bytes is HIRAGANA LETTER A in UTF-8 (\xE3\x81\x82).
;TI":ec = Encoding::Converter.new("EUC-JP", "ISO-8859-1")
;TI";ec.primitive_convert(src="\xa4\xa2", dst="", nil, 10)
;TI"p ec.primitive_errinfo
;TI"L#=> [:undefined_conversion, "UTF-8", "ISO-8859-1", "\xE3\x81\x82", ""]
;TI"
;TI"$# partial character is invalid
;TI":ec = Encoding::Converter.new("EUC-JP", "ISO-8859-1")
;TI"7ec.primitive_convert(src="\xa4", dst="", nil, 10)
;TI"p ec.primitive_errinfo
;TI"<#=> [:incomplete_input, "EUC-JP", "UTF-8", "\xA4", ""]
;TI"
;TI"E# Encoding::Converter::PARTIAL_INPUT prevents invalid errors by
;TI"# partial characters.
;TI":ec = Encoding::Converter.new("EUC-JP", "ISO-8859-1")
;TI"[ec.primitive_convert(src="\xa4", dst="", nil, 10, Encoding::Converter::PARTIAL_INPUT)
;TI"p ec.primitive_errinfo
;TI"4#=> [:source_buffer_empty, nil, nil, nil, nil]
;TI"
;TI"4# \xd8\x00\x00@ is invalid as UTF-16BE because
;TI"9# no low surrogate after high surrogate (\xd8\x00).
;TI"I# It is detected by 3rd byte (\00) which is part of next character.
;TI"9# So the high surrogate (\xd8\x00) is discarded and
;TI")# the 3rd byte is read again later.
;TI"A# Since the byte is buffered in ec, it is dropped from src.
;TI"7ec = Encoding::Converter.new("UTF-16BE", "UTF-8")
;TI"@ec.primitive_convert(src="\xd8\x00\x00@", dst="", nil, 10)
;TI"p ec.primitive_errinfo
;TI"K#=> [:invalid_byte_sequence, "UTF-16BE", "UTF-8", "\xD8\x00", "\x00"]
;TI"p src
;TI"
#=> "@"
;TI"
;TI"B# Similar to UTF-16BE, \x00\xd8@\x00 is invalid as UTF-16LE.
;TI",# The problem is detected by 4th byte.
;TI"7ec = Encoding::Converter.new("UTF-16LE", "UTF-8")
;TI"@ec.primitive_convert(src="\x00\xd8@\x00", dst="", nil, 10)
;TI"p ec.primitive_errinfo
;TI"L#=> [:invalid_byte_sequence, "UTF-16LE", "UTF-8", "\x00\xD8", "@\x00"]
;TI"p src
;TI"#=> "";T;
0:
@fileI"transcode.c;T:0@omit_headings_from_table_of_contents_below0I"#ec.primitive_errinfo -> array
;T0[I"();T@ZFI"Converter;TcRDoc::NormalClass00

Zerion Mini Shell 1.0