الفرق بين المراجعتين لصفحة: «Ruby/Encoding/Converter/convert»
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
لا ملخص تعديل |
||
سطر 20: | سطر 20: | ||
مثالٌ عن استخدام التابع <code>convert</code>:<syntaxhighlight lang="ruby"> | مثالٌ عن استخدام التابع <code>convert</code>:<syntaxhighlight lang="ruby"> | ||
ec = Encoding::Converter.new("utf-8", "euc-jp") | ec = Encoding::Converter.new("utf-8", "euc-jp") | ||
puts ec.convert("\u3042").dump #=> "\xA4\xA2" | |||
puts ec.convert("\u3042").dump | puts ec.finish.dump #=> "" | ||
puts ec.finish.dump | |||
ec = Encoding::Converter.new("euc-jp", "utf-8") | ec = Encoding::Converter.new("euc-jp", "utf-8") | ||
puts ec.convert("\xA4").dump #=> "" | |||
puts ec.convert("\xA4").dump | puts ec.convert("\xA2").dump #=> "\xE3\x81\x82" | ||
puts ec.finish.dump #=> "" | |||
puts ec.convert("\xA2").dump | |||
puts ec.finish.dump | |||
ec = Encoding::Converter.new("utf-8", "iso-2022-jp") | ec = Encoding::Converter.new("utf-8", "iso-2022-jp") | ||
puts ec.convert("\xE3").dump #=> "".force_encoding("ISO-2022-JP") | |||
puts ec.convert("\xE3").dump | puts ec.convert("\x81").dump #=> "".force_encoding("ISO-2022-JP") | ||
puts ec.convert("\x82").dump #=> "\e$B$\"".force_encoding("ISO-2022-JP") | |||
puts ec.convert("\x81").dump | puts ec.finish.dump #=> "\e(B".force_encoding("ISO-2022-JP") | ||
puts ec.convert("\x82").dump | |||
puts ec.finish.dump | |||
</syntaxhighlight> | </syntaxhighlight> |
المراجعة الحالية بتاريخ 10:39، 18 أكتوبر 2018
يُحوِّل التابع 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
: يُعيد البايتات التي ستُحوَّل.