الفرق بين المراجعتين ل"Ruby/Encoding/InvalidByteSequenceError/source encoding"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'{{DISPLAYTITLE:التابع <code>Encoding.source_encoding</code> في روبي}} يعيد التّابع <code>source_encoding</code> التّرميز المصدر كك...')
 
ط
 
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين)
سطر 1: سطر 1:
{{DISPLAYTITLE:التابع <code>Encoding.source_encoding</code> في روبي}}
+
{{DISPLAYTITLE:التابع <code>Encoding::InvalidByteSequenceError.source_encoding</code> في روبي}}
 
يعيد التّابع <code>source_encoding</code> التّرميز المصدر ككائن. لاحظ أنَّ التّرميز النّاتج قد لا يكون مطابقًا للترميز المصدري الخاص بالمحوّل إذا تمّت عملية التّحويل على عدّة مراحل.
 
يعيد التّابع <code>source_encoding</code> التّرميز المصدر ككائن. لاحظ أنَّ التّرميز النّاتج قد لا يكون مطابقًا للترميز المصدري الخاص بالمحوّل إذا تمّت عملية التّحويل على عدّة مراحل.
  
سطر 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>
سطر 48: سطر 39:
 
[[تصنيف:Ruby]]
 
[[تصنيف:Ruby]]
 
[[تصنيف:Ruby Method]]
 
[[تصنيف:Ruby Method]]
 +
[[تصنيف:Ruby Encoding]]
 
[[تصنيف:Ruby Encoding::InvalidByteSequenceError]]
 
[[تصنيف:Ruby Encoding::InvalidByteSequenceError]]

المراجعة الحالية بتاريخ 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.

مصادر