الفرق بين المراجعتين لصفحة: «Ruby/Encoding/InvalidByteSequenceError/source encoding»

من موسوعة حسوب
ط مراجعة وتدقيق.
طلا ملخص تعديل
 
سطر 13: سطر 13:
مثالٌ عن استخدام التّابع <code>source_encoding</code>:<syntaxhighlight lang="ruby">
مثالٌ عن استخدام التّابع <code>source_encoding</code>:<syntaxhighlight lang="ruby">
ec = Encoding::Converter.new("ISO-8859-1", "EUC-JP") # ISO-8859-1 -> UTF-8 -> EUC-JP
ec = Encoding::Converter.new("ISO-8859-1", "EUC-JP") # ISO-8859-1 -> UTF-8 -> EUC-JP
begin
begin
 
  ec.convert("\xa0") # NO-BREAK SPACE, which is available in UTF-8 but not in EUC-JP.
 ec.convert("\xa0") # NO-BREAK SPACE, which is available in UTF-8 but not in EUC-JP.
 
rescue Encoding::UndefinedConversionError
rescue Encoding::UndefinedConversionError
 
  p $!.source_encoding             #=> #<Encoding:UTF-8>
 p $!.source_encoding              #=> #<Encoding:UTF-8>
  p $!.destination_encoding         #=> #<Encoding:EUC-JP>
 
  p $!.source_encoding_name         #=> "UTF-8"
 p $!.destination_encoding         #=> #<Encoding:EUC-JP>
  p $!.destination_encoding_name   #=> "EUC-JP"
 
 p $!.source_encoding_name         #=> "UTF-8"
 
 p $!.destination_encoding_name    #=> "EUC-JP"
 
end
end


</syntaxhighlight>
</syntaxhighlight>

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

يعيد التّابع source_encoding التّرميز المصدر ككائن. لاحظ أنَّ التّرميز النّاتج قد لا يكون مطابقًا للترميز المصدري الخاص بالمحوّل إذا تمّت عملية التّحويل على عدّة مراحل.

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

source_encoding  encoding

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

يُعاد كائن من النوع Encoding يمثل التّرميز المصدر.

أمثلة

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

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

انظر أيضًا

  • التّابع ?incomplete_input: يتحقّق فيما إذا كان خطأ تسلسل البايت الحاصل ناتجًا عن إنهاءٍ مُبكِّرٍ للسّلسلة النّصية.
  • التّابع readagain_bytes: يعُيد البايتات المراد قراءتها مجدّدًا عندما يقع الخطأ InvalidByteSequenceError.

مصادر