0Pricing
Swift Academy · درس

تمثيلات الترميز: utf8 و utf16 و unicodeScalars

تعامَل مع التمثيلات المختلفة للترميز.

تمثيلات الترميز: utf8 و utf16 و unicodeScalars درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

واجهات ترميز السلاسل النصية

توفر String في Swift عدة واجهات للنص نفسه على مستويات مختلفة: utf8 وutf16 وunicodeScalars.

let s = "Hi"
print(Array(s.utf8))
print(Array(s.utf16))

واجهة utf8

تُظهر واجهة .utf8 السلسلة النصية كتسلسل من وحدات ترميز UTF-8 (بايتات). وتمثل محارف ASCII ببايت واحد لكل محرف.

let s = "AB"
for byte in s.utf8 {
    print(byte)
}

UTF-8 متعدد البايتات

تحتاج المحارف غير المنتمية إلى ASCII إلى عدة بايتات في UTF-8. ويتحول الحرف المشكول أو الرمز التعبيري إلى عدة وحدات ترميز.

let s = "\u{e9}"
print("UTF-8 bytes:", Array(s.utf8))

واجهة utf16

تُظهر واجهة .utf16 وحدات ترميز UTF-16. وتستخدم معظم المحارف الشائعة وحدة واحدة؛ أما المحارف الواقعة خارج المستوى الأساسي فتستخدم وحدتين (زوجًا بديلًا).

let s = "A\u{1F600}"
print("UTF-16 units:", Array(s.utf16))

واجهة unicodeScalars

تُظهر واجهة .unicodeScalars نقاط الترميز الأساسية، وتقع بين المحارف والبايتات الخام.

let s = "Hi\u{1F600}"
for scalar in s.unicodeScalars {
    print(scalar.value)
}

مقارنة الواجهات

تنتج السلسلة النصية نفسها أعدادًا مختلفة في كل واجهة، لأن الترميزات تمثل المحارف بأعداد مختلفة من الوحدات.

let s = "\u{1F600}"
print("characters:", s.count)
print("scalars:", s.unicodeScalars.count)
print("utf16:", s.utf16.count)
print("utf8:", s.utf8.count)

أهمية UTF-8

يُعد UTF-8 الترميز السائد للملفات والشبكات. وتتيح لكم واجهة .utf8 إنتاج تلك البايتات بالضبط.

let message = "OK"
let bytes = Array(message.utf8)
print(bytes)

أهمية UTF-16

تستخدم بعض المنصات وواجهات برمجة التطبيقات UTF-16. وتتيح واجهة .utf16 التوافق معها.

let s = "Hi"
print("UTF-16 count:", s.utf16.count)

إعادة إنشاء سلسلة نصية

يمكنكم إعادة بناء سلسلة نصية من بايتات UTF-8 باستخدام String(decoding:as:)، وبذلك تكتمل دورة التحويل ذهابًا وإيابًا.

let bytes: [UInt8] = Array("Swift".utf8)
let restored = String(decoding: bytes, as: UTF8.self)
print(restored)

عدّ البايتات مقابل المحارف

يختلف طول البايتات عن طول المحارف في النصوص غير المنتمية إلى ASCII. اختاروا الواجهة التي تناسب مهمتكم: العرض أم التخزين.

let s = "caf\u{e9}"
print("Characters:", s.count)
print("UTF-8 bytes:", s.utf8.count)

اختيار الواجهة المناسبة

استخدموا المحارف لمنطق العرض، والقيم العددية لتحليل Unicode، وutf8 أو utf16 للترميز والتخزين والتوافق مع الأنظمة الأخرى.

let s = "A\u{e9}\u{1F600}"
print("chars:", s.count, "scalars:", s.unicodeScalars.count, "utf8:", s.utf8.count)

تحقق سريع

استرجعوا ما تحتويه واجهة utf8.

مراجعة: واجهات الترميز

تعلّمتم أن String توفر واجهات utf8 وutf16 وunicodeScalars للنص نفسه، وأن أعدادها تختلف لأن الترميزات تستخدم أحجامًا مختلفة للوحدات، وأنكم تختارون الواجهة بناءً على حاجتكم إلى العرض أو التحليل أو الترميز للتخزين والشبكات.

let s = "Hi\u{1F600}"
print("chars:", s.count, "utf8:", s.utf8.count, "utf16:", s.utf16.count)

الأسئلة الشائعة

هل درس «تمثيلات الترميز: utf8 و utf16 و unicodeScalars» مجاني؟

نعم — نص درس «تمثيلات الترميز: utf8 و utf16 و unicodeScalars» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «تمثيلات الترميز: utf8 و utf16 و unicodeScalars»؟

تعامَل مع التمثيلات المختلفة للترميز. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «تمثيلات الترميز: utf8 و utf16 و unicodeScalars»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. المحارف والعناقيد البيانية
  2. القيم السلمية لـ Unicode ونقاط الرموز
  3. عدّ المحارف وتكرارها
  4. تمثيلات الترميز: utf8 و utf16 و unicodeScalars
← العودة إلى Swift Academy