الفرق بين المراجعتين ل"Ruby/String/unicode normalize-21"

من موسوعة حسوب
< Ruby‏ | String
اذهب إلى التنقل اذهب إلى البحث
(إنشاء الصفحة. هذه الصفحة من مساهمات "كريم حبال".)
 
(إضافة المحتوى)
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby String]]
 
[[تصنيف: Ruby String]]
يعيد التابع <code>unicode_normalize!‎</code> ب
+
يوحد التابع <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). 

مصادر