التابع Encoding::Converter.convert في روبي

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث

يُحوِّل التابع convert ترميز سّلسلة نصيّة معينة. يجب استخدام التابع finish في النّهاية.

إذا حدث خطأٌ في التحويل، فسيُرمَى أحد الخطأين Encoding::UndefinedConversionError أو Encoding::InvalidByteSequenceError. لا يزوِّد التّابع convert أي طرائق لاسترداد أو إعادة العملية بدءًا من الاستثناء المرمي. استخدم التابع primitive_convert عندما تريد التّعامل مع هذه الاستثناءات.

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

convert(source_string)  destination_string

المعاملات

source_string

السلسلة النّصية ذات التّرميز المصدر المراد تحويله. يعدُّ المعامل source_string جزءًا من المصدر. تُعين partial_input: مثلًا إلى القيمة true داخليًا (partial_input=>true:).

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

تُعاد السلسلة النصيّة source_string بعد تحويلها إلى التّرميز الوجهة الجديد.

أمثلة

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

ec = Encoding::Converter.new("utf-8", "euc-jp")

puts ec.convert("\u3042").dump     #=> "\xA4\xA2"

puts ec.finish.dump                #=> ""

ec = Encoding::Converter.new("euc-jp", "utf-8")

puts ec.convert("\xA4").dump       #=> ""

puts ec.convert("\xA2").dump       #=> "\xE3\x81\x82"

puts ec.finish.dump                #=> ""

ec = Encoding::Converter.new("utf-8", "iso-2022-jp")

puts ec.convert("\xE3").dump       #=> "".force_encoding("ISO-2022-JP")

puts ec.convert("\x81").dump       #=> "".force_encoding("ISO-2022-JP")

puts ec.convert("\x82").dump       #=> "\e$B$\"".force_encoding("ISO-2022-JP")

puts ec.finish.dump                #=> "\e(B".force_encoding("ISO-2022-JP")

انظر أيضًا

  • التّابع replacement::: يُعيد سلسلة الاستبدال النصية.
  • التّابع replacement: يضبط سلسلة الاستبدال النصية.
  • التّابع inspect: يُعيد نسخةً قابلةً للطباعة من كائن الصنف Encoding::Converter.
  • التّابع primitive_errinfo: يُعيد معلوماتٍ مهمّةً حول آخر خطأٍ حدث في مصفوفة مكونة من خمسة عناصر.
  • التّابع putback: يُعيد البايتات التي ستُحوَّل.

مصادر