الفرق بين المراجعتين لصفحة: «Ruby/String/unicode normalize-21»
جميل-بيلوني (نقاش | مساهمات) إنشاء الصفحة. هذه الصفحة من مساهمات "كريم حبال". |
جميل-بيلوني (نقاش | مساهمات) إضافة المحتوى |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby String]] | [[تصنيف: Ruby String]] | ||
يوحد التابع <code>unicode_normalize!</code> ترميز السلسلة النصية التي استدعيت معه باستخدام ترميزات يونيكود الموحدة (Unicode normalizations) التالية: NFC، أو NFD، أو NFKC، أو NFKD. يطلق التابع [[Ruby/Exception|استثناءً]] إذا كانت السلسلة النصية غير مُرمّزة بترميز اليونيكود. | |||
يُقصَد بترميز اليونيكود (Unicode Encoding) أيًا من الترميزات التالية: UTF-8، أو UTF-16BE/LE، أو UTF-32BE/LE، أو GB18030، أو UCS_2BE، أو UCS_4BE. | |||
تُحوَّل السلسلة النصية إلى الترميز UTF-8، إذا كانت مُرمّزة بترميز مغاير له، مما يجعل العملية أبطأ فيما إذا كانت السلاسل مُرمّزة بالترميز UTF-8. | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">unicode_normalize!(form=:nfc)</syntaxhighlight> | <syntaxhighlight lang="ruby">unicode_normalize!(form=:nfc)</syntaxhighlight> | ||
== المعاملات == | |||
=== <code>form</code> === | |||
يحدد نمط ترميزات يونيكود الموحدة في نسخة السلسلة النصية المعطاة، ويأخذ إحدى القيم التالية: | |||
* <code>nfc:</code> (القيمة الافتراضية) | |||
* <code>nfd:</code> | |||
* <code>nfkc:</code> | |||
* <code>nfkd:</code> | |||
==القيمة المعادة== | ==القيمة المعادة== | ||
تُعاد السلسلة النصية المعطاة بعد تغيير ترميزها إلى ترميز موحد باستخدام النمط <code>form</code>. يطلق [[Ruby/Exception|استثناء]] إذا كانت السلسلة النصية غير مُرمَزة بترميز اليونيكود. | |||
== أمثلة == | |||
أمثلة على استعمال التابع <code>unicode_normalize!</code>:<syntaxhighlight lang="ruby"> | |||
string= "a\u0300" | |||
string.unicode_normalize! #=> "\u00E0" | |||
string #=> "\u00E0" | |||
"\xE0".force_encoding('ISO-8859-1').unicode_normalize!(:nfd) | |||
#=> Encoding::CompatibilityError raised | |||
</syntaxhighlight> | |||
==انظر | ==انظر أيضًا== | ||
* التابع <code>[[Ruby/String/force encoding|force_encoding]]</code>: يغير ترميز السلسلة النصية التي استدعي معها إلى ترميز مُحدد ثم يعيدها. | |||
* التابع <code>[[Ruby/String/unicode normalize|unicode_normalize]]</code>: يعيد نسخة موحدة (normalized string، أي ذات ترميز موحد) للسلسلة النصية التي استدعيت معه باستخدام أحد ترميزات يونيكود الموحدة. | |||
* التابع <code>[[Ruby/String/unicode normalized-3F|unicode_normalized?]]</code>: يتحقق إذا كانت السلسلة النصية التي استدعيت معه ذات ترميز موحَّد باستخدام أحد ترميزات يونيكود الموحدة (Unicode normalizations). | |||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/String.html#method-i-unicode_normalize-21 قسم التابع unicode_normalize! في الصنف String في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/String.html#method-i-unicode_normalize-21 قسم التابع unicode_normalize! في الصنف String في توثيق روبي الرسمي.] |
المراجعة الحالية بتاريخ 13:44، 15 ديسمبر 2018
يوحد التابع unicode_normalize!
ترميز السلسلة النصية التي استدعيت معه باستخدام ترميزات يونيكود الموحدة (Unicode normalizations) التالية: NFC، أو NFD، أو NFKC، أو NFKD. يطلق التابع استثناءً إذا كانت السلسلة النصية غير مُرمّزة بترميز اليونيكود.
يُقصَد بترميز اليونيكود (Unicode Encoding) أيًا من الترميزات التالية: UTF-8، أو UTF-16BE/LE، أو UTF-32BE/LE، أو GB18030، أو UCS_2BE، أو UCS_4BE.
تُحوَّل السلسلة النصية إلى الترميز UTF-8، إذا كانت مُرمّزة بترميز مغاير له، مما يجعل العملية أبطأ فيما إذا كانت السلاسل مُرمّزة بالترميز UTF-8.
البنية العامة
unicode_normalize!(form=:nfc)
المعاملات
form
يحدد نمط ترميزات يونيكود الموحدة في نسخة السلسلة النصية المعطاة، ويأخذ إحدى القيم التالية:
nfc:
(القيمة الافتراضية)nfd:
nfkc:
nfkd:
القيمة المعادة
تُعاد السلسلة النصية المعطاة بعد تغيير ترميزها إلى ترميز موحد باستخدام النمط form
. يطلق استثناء إذا كانت السلسلة النصية غير مُرمَزة بترميز اليونيكود.
أمثلة
أمثلة على استعمال التابع unicode_normalize!
:
string= "a\u0300"
string.unicode_normalize! #=> "\u00E0"
string #=> "\u00E0"
"\xE0".force_encoding('ISO-8859-1').unicode_normalize!(:nfd)
#=> Encoding::CompatibilityError raised
انظر أيضًا
- التابع
force_encoding
: يغير ترميز السلسلة النصية التي استدعي معها إلى ترميز مُحدد ثم يعيدها. - التابع
unicode_normalize
: يعيد نسخة موحدة (normalized string، أي ذات ترميز موحد) للسلسلة النصية التي استدعيت معه باستخدام أحد ترميزات يونيكود الموحدة. - التابع
unicode_normalized?
: يتحقق إذا كانت السلسلة النصية التي استدعيت معه ذات ترميز موحَّد باستخدام أحد ترميزات يونيكود الموحدة (Unicode normalizations).