الفرق بين المراجعتين لصفحة: «Ruby/Encoding/InvalidByteSequenceError/incomplete input-3F»

من موسوعة حسوب
ط مراجعة وتدقيق.
طلا ملخص تعديل
 
سطر 15: سطر 15:


begin
begin
 
  ec.convert("abc\xA1z")
 ec.convert("abc\xA1z")
 
rescue Encoding::InvalidByteSequenceError
rescue Encoding::InvalidByteSequenceError
 
  p $!     #=> #<Encoding::InvalidByteSequenceError: "\xA1" followed by "z" on EUC-JP>
 p $!      #=> #<Encoding::InvalidByteSequenceError: "\xA1" followed by "z" on EUC-JP>
  p $!.incomplete_input?   #=> false
 
 p $!.incomplete_input?    #=> false
 
end
end


begin
begin
 
  ec.convert("abc\xA1")
 ec.convert("abc\xA1")
  ec.finish
 
 ec.finish
 
rescue Encoding::InvalidByteSequenceError
rescue Encoding::InvalidByteSequenceError
 
  p $!     #=> #<Encoding::InvalidByteSequenceError: incomplete "\xA1" on EUC-JP>
 p $!      #=> #<Encoding::InvalidByteSequenceError: incomplete "\xA1" on EUC-JP>
  p $!.incomplete_input?   #=> true
 
 p $!.incomplete_input?    #=> true
 
end
end


</syntaxhighlight>
</syntaxhighlight>

المراجعة الحالية بتاريخ 18:59، 18 أكتوبر 2018

يتحقّق التّابع ?incomplete_input فيما إذا كان خطأ تسلسل البايت (byte sequence error) الحاصل ناتجًا عن إنهاءٍ مُبكِّرٍ للسّلسلة النّصية.

البنية العامة

incomplete_input?  true or false

القيم المعادة

تُعاد القيمة true إذا كان خطأ تسلسل البايت الحاصل ناتجًا عن إنهاءٍ مُبكِّرٍ للسّلسلة النّصية، أو تُعاد القيمة false خلاف ذلك.

أمثلة

مثالٌ عن استخدام  التّابع ?incomplete_input:

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

انظر أيضًا

مصادر