07-04-2024, 09:22 PM
مقدمة
-------
من المعروف ان الكمبيوتر لا يفهم لغاتنا التي نتحدث بها ولا حتي لغات البرمجة التي نتعلمها ولكنه يفهم اللغة الثنائية (Binary Number System) وعند قيامنا بتخزين قيمة رقمية فانها تتحول للغة الثنائية في النهاية (فمثلا الرقم 86 يخزن 01010110 في الذاكرة) أما بالنسبة للحروف (Characters) فيتم تحويلها الي أرقام (وبعدها للنظام الثنائي كما قلنا) ليفهمها الكمبيوتر
ASCII
-------
وقد وضعت أنظمة لهذا التحويل يسمي الواحد منها (Character Set) وأول تلك الأنظمة هو (ASCII)
لاحظ في جدول الاسكي ان لكل حرف في لوحة المفاتيح رقما يقابله بالانظمة المختلفة (ثنائي - ثماني - عشري - ست عشري)
عملية تحويل الحرف الي رقم يسمي في حالتنا هنا : ASCII Encoding
والعملية العكسية تسمي : ASCII Decoding
Extended ASCII
-------------------
ولان البايت الواحد به 7 بت فقط فان اكبر الارقام المسموح بها (1111111) اي الرقم 127 فيكون عدد الارقام الكلي 128 (لانهم يتراوحون من 0 الي 127)
1 2 4 8 16 32 64
1 1 1 1 1 1 1
ولكن هذا النظام لا يتناسب مع كل اللغات في العالم نظرا لمحدوديته ولذلك تم عمل ما يسمي ب Extended ASCII وفيه البايت يساوي 8 بت اي اصبحنا نتعامل مع 256 رقما (0 حتي 255)
1 2 4 8 16 32 64 128
1 1 1 1 1 1 1 1
رجاء زد معلوماتك وابحث عن : Code Page
UNICODE
------------
ظهرت مشكلة أخري وهي وجود لغات لا تكفيها البايت الواحد لوضع حروفها ولذا ظهر نظام اليونيكود والنظام المستخدم هنا غالبا هو الست عشري مع وضع U+ في البداية قبل الرقم (مثلا حرف M بعد التحويل يكون U+004D)
يأتي اليونيكود ب 3 اشكال : UTF-8 or UTF-16 or UTF-32
يتبع ...
اذا وجدت اي خطأ او لديك تعديل لاتتردد في تصحيحه ولكن باسلوب مناسب
-------
من المعروف ان الكمبيوتر لا يفهم لغاتنا التي نتحدث بها ولا حتي لغات البرمجة التي نتعلمها ولكنه يفهم اللغة الثنائية (Binary Number System) وعند قيامنا بتخزين قيمة رقمية فانها تتحول للغة الثنائية في النهاية (فمثلا الرقم 86 يخزن 01010110 في الذاكرة) أما بالنسبة للحروف (Characters) فيتم تحويلها الي أرقام (وبعدها للنظام الثنائي كما قلنا) ليفهمها الكمبيوتر
ASCII
-------
وقد وضعت أنظمة لهذا التحويل يسمي الواحد منها (Character Set) وأول تلك الأنظمة هو (ASCII)
لاحظ في جدول الاسكي ان لكل حرف في لوحة المفاتيح رقما يقابله بالانظمة المختلفة (ثنائي - ثماني - عشري - ست عشري)
عملية تحويل الحرف الي رقم يسمي في حالتنا هنا : ASCII Encoding
والعملية العكسية تسمي : ASCII Decoding
Extended ASCII
-------------------
ولان البايت الواحد به 7 بت فقط فان اكبر الارقام المسموح بها (1111111) اي الرقم 127 فيكون عدد الارقام الكلي 128 (لانهم يتراوحون من 0 الي 127)
1 2 4 8 16 32 64
1 1 1 1 1 1 1
ولكن هذا النظام لا يتناسب مع كل اللغات في العالم نظرا لمحدوديته ولذلك تم عمل ما يسمي ب Extended ASCII وفيه البايت يساوي 8 بت اي اصبحنا نتعامل مع 256 رقما (0 حتي 255)
1 2 4 8 16 32 64 128
1 1 1 1 1 1 1 1
رجاء زد معلوماتك وابحث عن : Code Page
UNICODE
------------
ظهرت مشكلة أخري وهي وجود لغات لا تكفيها البايت الواحد لوضع حروفها ولذا ظهر نظام اليونيكود والنظام المستخدم هنا غالبا هو الست عشري مع وضع U+ في البداية قبل الرقم (مثلا حرف M بعد التحويل يكون U+004D)
يأتي اليونيكود ب 3 اشكال : UTF-8 or UTF-16 or UTF-32
يتبع ...
اذا وجدت اي خطأ او لديك تعديل لاتتردد في تصحيحه ولكن باسلوب مناسب