في عالم البرمجة ، هناك عدة أنواع من الرموز لتمثيل النص. أحد هذه الأنواع هو تشار. يتم استخدامه في مايكروسوفت ويندوز لدعم ترميز متعدد البايت وبايت واحد. ولكن ماذا لو كنت بحاجة إلى العمل مع الأحرف التي تستهلك أكثر من بايت واحد? في هذه الحالة ، قد يكون نوع وشار مفيدا لك.
كما كنت قد خمنت ، وشار هو نوع الحرف الذي يمكن تخزين الأحرف عدة بايت واسعة. ويوفر الدعم يونيكود ويمكن أن تحتوي على أحرف من جميع لغات العالم. يستخدم هذا النوع أيضا في العديد من أنظمة التشغيل ، بما في ذلك لينكس وماك.
ومع ذلك ، على الرغم من حقيقة أن كل من تشار وشار يمثلان أحرفا نصية ، إلا أن لهما خصائصهما واختلافاتهما الخاصة. أحد الاختلافات الرئيسية بينهما هو الحجم. ويشار يستغرق اثنين بايت ، في حين تشار يمكن أن يستغرق واحد أو اثنين بايت ، اعتمادا على إعدادات مترجم.
وبالتالي ، فإن استخدام تشار يسمح لك بحفظ الذاكرة عند العمل مع ترميز متعدد البايت غير مطلوب. من ناحية أخرى ، يوفر وشار دعم يونيكود وراحة العمل مع النصوص متعددة اللغات.
- وصف موضوع المقال
- القسم الأول
- تعريف تشار وشار
- القسم الثاني
- الفرق في الترميز
- القسم الثالث
- رازمر من شار مقابل وشار
- القسم الرابع
- تعدد الشخصيات
- سؤال وجواب
وصف موضوع المقال
موضوع المقال هو " كيف يختلف تشار عن وشار: مراجعة مفصلة ومقارنة."
تقدم هذه المقالة نظرة عامة مفصلة ومقارنة بين نوعين من البيانات-تشار و وشار ، والتي تستخدم في البرمجة للعمل مع النص.
في بداية المقال ، سيتم توفير وصف موجز لكل نوع من أنواع البيانات وميزاته. ثم سيتم مقارنة تشار وشار وفقا للمعايير التالية:
- اللغات المدعومة:
- يدعم تشار أحرف أنسي ويمكن استخدامه للعمل مع النص بلغات أوروبية مختلفة.
- وشار يدعم أحرف يونيكود ويمكن استخدامها للعمل مع النص بلغات مختلفة ، بما في ذلك الصينية واليابانية وغيرها.
- حجم البيانات:
- تشار لديه حجم 1 بايت ، لأنه يستخدم ترميز أوتف-8.
- وشار هو 2 بايت في الحجم لأنه يستخدم ترميز أوتف - 16.
- رمز قابلية:
- تشار يمكن استخدامها لكتابة التعليمات البرمجية المحمولة التي سيتم تشغيلها على منصات مختلفة.
- وشار يمكن أن يسبب مشاكل مع قابلية رمز ، وحجم وشار قد تختلف على منصات مختلفة.
في نهاية المقال ، سيتم تقديم ملخص واستنتاجات حول الحالات التي يكون من الأفضل فيها استخدام تشار ، وفي أي الحالات-وشار.
القسم الأول
في هذا القسم ، سوف ننظر في الاختلافات بين أنواع البيانات تشار و وتشار.
نوع بيانات تشار هو نوع مستقل عن النظام الأساسي يمكن أن يكون إما شار أو وشار ، اعتمادا على ما إذا كان النظام الأساسي يدعم يونيكود. إذا كان النظام الأساسي يدعم يونيكود ، فسيتم تمثيل نوع بيانات تشار بنوع وتشار_ت.
نوع البيانات وتشار_ت ، على عكس نوع شار ، هو حرف يونيكود 2 بايت. في هذا الشكل ، يمكنك تخزين الأحرف من مجموعة ونيكود دون استخدام ترميزات مثل أوتف-8 أو أوتف-16. عادة ما يتم استخدام نوع بيانات وتشار_ت للعمل مع الأحرف والسلاسل عندما تحتاج العديد من اللغات المختلفة إلى الدعم.
توفر مكتبة سي standard القياسية العديد من الوظائف للعمل مع نوع بيانات وتشار_ت ، مثل وسكبي ، وسلين ، وبرينتف وغيرها. أنها تسمح لك لمعالجة الأحرف والسلاسل في شكل وتش ت.
وبالمقارنة مع نوع بيانات تشار ، وهو مستقل عن النظام الأساسي ، يوفر نوع وشار مجموعة واسعة من الاحتمالات للعمل مع الأحرف والسلاسل التي تدعم يونيكود.
في القسم التالي ، سنلقي نظرة على أمثلة محددة لاستخدام أنواع بيانات تشار و وتش ت واختلافها في برمجة سي programming.
تعريف تشار وشار
تشار:
تشار هو نوع البيانات من مكتبة أبي ميكروسوفت ويندوز التي تمثل الأحرف في ونيكود أو ترميز أنسي ، اعتمادا على تكوين المشروع. في حالة ترميز يونيكود (يتم تعريف يونيكود و _ يونيكود) ، سيكون تشار مكافئا ل وشار ، وفي حالة ترميز أنسي — شار. نوع تشار يجعل من السهل للتبديل بين ترميزات مختلفة ويضمن التوافق مع إصدارات مختلفة من أبي ويندوز.
وشار:
وشار هو نوع البيانات التي تمثل الأحرف في شكل واسع باستخدام ترميز يونيكود. عرض وشار يختلف اعتمادا على منصة محددة والمترجم ، ولكن عادة ما يكون 2 أو 4 بايت.
والفرق الرئيسي بين تشار و وشار هو أن تشار يمكن أن يكون إما شار أو وشار اعتمادا على إعدادات المشروع ، و وشار يمثل دائما أحرف واسعة في شكل يونيكود.
باستخدام تشار يسمح لك لكتابة التعليمات البرمجية المحمولة التي يمكن تجميعها وتشغيلها في كل من أنسي المشفرة والتطبيقات القائمة على يونيكود. وفي الوقت نفسه ، فإن استخدام وشار يوفر العمل مع أحرف يونيكود ، والذي يسمح لك لدعم مختلف اللغات والأحرف ، بما في ذلك الأحرف غير اللاتينية والأحرف يونيكود عالية.
القسم الثاني
تشار (تشار) و وشار (وشار) هي أنواع البيانات المستخدمة للعمل مع الرموز في البرامج في لغات البرمجة مثل ج و ج++. إنها أنواع بيانات خاصة تسمح لك بالعمل مع أحرف من ترميزات مختلفة.
تشار (تشار) هو ماكرو المستخدمة في أبي ويندوز لتحديد نوع الحرف اعتمادا على ما إذا كان يتم تمكين دعم أحرف متعددة البايت (مبكس) أو أحرف واسعة (ونيكود). إذا تم تعريف ماكرو يونيكود ، ثم تشار هو نوع وتشار_ت. خلاف ذلك ، تشار هو نوع شار.
وشار (وشار) هو نوع البيانات المصممة للعمل مع أحرف واسعة (يونيكود). يتم استخدامه لتمثيل الأحرف التي تشغل أكثر من بايت واحد. يمكن تمثيل أحرف يونيكود واسعة إما بواحد أو اثنين بايت. يوفر نوع وتش ت الدعم لهذه الرموز في لغات البرمجة.
أحد الاختلافات الرئيسية بين تشار و وتش ت هو أبعادها. نوع شار لديه حجم 1 بايت ، لذلك تشار ، اعتمادا على التكوين ، يمكن استخدام إما 1 أو 2 بايت لكل حرف. يحتوي نوع وتشار_ت على حجم ثابت يبلغ 2 بايت لكل حرف ، مما يسمح له بتمثيل أحرف يونيكود واسعة.
عندما يتعلق الأمر بالاختيار بين تشار و وتشار ، تحتاج إلى أن تأخذ في الاعتبار تفاصيل المهمة المحددة ومتطلبات النظام الأساسي المستهدف. إذا تم تصميم البرنامج للعمل مع ترميزات مختلفة ، بما في ذلك يونيكود ، فمن الأفضل استخدام وتشار_ت بحيث يمكن تمثيل جميع الأحرف بشكل صحيح. إذا كان هناك حاجة إلى أقصى قدر من التوافق مع تكوينات مختلفة ، ثم تشار قد يكون خيارا أكثر ملاءمة.
الفرق في الترميز
أحد الاختلافات الرئيسية بين تشار و وشار هو الفرق في الترميز.
تشار هو ماكرو يتم استبداله تلقائيا بنوع شار أو وتشار_ت ، اعتمادا على إعدادات المشروع. في ترميز أسي ، شار يستغرق 1 بايت ، ويمكن أن تمثل الأحرف فقط في اللاتينية. إذا كان مشروعك يستخدم الأحرف اللاتينية فقط وترميز أسي متوافق ، ثم استخدام تشار هو الأفضل ، لأنه يحفظ الذاكرة ويجعل رمز أكثر كفاءة.
وشار هو حرف واسع يمكن أن يمثل أحرفا من مجموعات أحرف مختلفة ، بما في ذلك الأحرف اللاتينية وغير اللاتينية. على عكس شار ، وشار عادة ما يستغرق 2 بايت أو 4 بايت اعتمادا على النظام. عند استخدام وشار ، يمكنك العمل مع مجموعات الأحرف المختلفة وترميزات الدعم مثل أوتف-16 أو أوتف-32 ، والذي يسمح لك للعمل مع أحرف من جميع لغات العالم.
إذا كان المشروع الخاص بك يعمل فقط مع الأحرف اللاتينية وترميز أسي متوافق ، ثم استخدام تشار سيكون أفضل حل ، لأن هذا الرمز سيكون أكثر الذاكرة والأداء كفاءة. ومع ذلك ، إذا كان مشروعك يعمل مع مجموعات أحرف مختلفة ، بما في ذلك الأحرف غير اللاتينية ، ثم استخدام وشار سيكون الخيار المفضل.
القسم الثالث
في هذا القسم ، سننظر في الاختلافات الرئيسية بين تشار وشار.
1 أنواع البيانات. تشار و وشار هي أنواع البيانات المختلفة المستخدمة للعمل مع الرموز في لغة البرمجة سي programming.
2. يكمن الاختلاف الرئيسي بينهما في تنسيق تمثيل الشخصيات. يستخدم تشار لدعم يونيكود وشخصيات متعددة البايت ، في حين يستخدم وشار حصرا للعمل مع أحرف يونيكود واسعة.
3. عند استخدام تشار ، على حد سواء أنسي العادية و ونيكود الأحرف يمكن استخدامها. هذا يجعل من السهل رمز المنفذ بين الأنظمة التي تدعم ترميزات الأحرف المختلفة.
4. من ناحية أخرى ، وشار هو أكثر تفضيلا للعمل مع أحرف يونيكود. وهو يدعم جميع الميزات يونيكود ، بما في ذلك جميع اللغات والرموز والرموز التعبيرية.
5. إذا كنت بحاجة إلى العمل مع الأحرف في معظم اللغات ، بما في ذلك أنظمة الكتابة الصينية واليابانية وغيرها ، فمن المستحسن استخدام وشار. خلاف ذلك ، إذا كان التوافق مع الأنظمة التي تستخدم ترميزات غير يونيكود مهم بالنسبة لك ، يمكنك استخدام تشار.
بشكل عام ، يعتمد الاختيار بين تشار و وشار على متطلبات مشروعك والمنصة المستهدفة. إذا كان المشروع الخاص بك ينطوي على العمل مع أحرف يونيكود ، نوصي باستخدام وشار. خلاف ذلك ، قد يكون تشار حلا أكثر ملاءمة ومرونة.
رازمر من شار مقابل وشار
شار و وشار نوعان مختلفان من البيانات في لغة برمجة سي programming. يعتمد حجم كل منها على البنية والمترجم المستخدم في تطوير البرنامج.
نوع البيانات شار هو حرف واحد من جدول أسي وتحتل 1 بايت في الذاكرة. يحتوي جدول أسي على أحرف قياسية مثل الأحرف الكبيرة والصغيرة والأرقام والأحرف الخاصة. هناك 128 حرفا في المجموع في الجدول أسي. إذا كان المبرمج يحتاج إلى العمل مع الأحرف التي لم يتم تضمينها في جدول أسي ، ثم نوع البيانات وشار يمكن استخدامها لهذا الغرض.
يتم استخدام نوع بيانات وشار للعمل مع أحرف ونيكود وعادة ما تحتل 2 أو 4 بايت في الذاكرة. يسمح لك بتمثيل مجموعة أكبر من الأحرف ، بما في ذلك الحروف الهيروغليفية ورموز النصوص الأخرى. ميزة وشار هو أنه يمكن تخزين الأحرف التي لم يتم تمثيلها في جدول أسي ، ولكن في نفس الوقت يأخذ مساحة أكبر في الذاكرة.
تحديد حجم شار و وشار يعتمد على المترجم والهندسة المعمارية. في بعض الحالات ، يمكن أن يستغرق شار 2 أو 4 بايت ، و وشار يمكن أن يستغرق 1 أو 2 بايت. ويرجع ذلك إلى استخدام ترميزات الأحرف المختلفة وخصوصية المترجم.
بشكل عام ، يعتمد استخدام شار و وشار على احتياجات البرنامج. إذا كنت بحاجة إلى العمل مع الأحرف محدودة من قبل جدول أسي ، فمن المستحسن استخدام شار لحفظ الذاكرة. إذا كنت بحاجة إلى دعم ونيكود والعمل مع مجموعة كبيرة من الأحرف ، ثم وشار سيكون خيارا أكثر ملاءمة ، على الرغم من استهلاك ذاكرة كبيرة.
القسم الرابع
في هذا القسم ، سننظر في الاختلافات الرئيسية بين تشار وشار.
نوع البيانات:
تشار هو ماكرو يسمح لك باستخدام أحرف واسعة النطاق (أحرف عريضة) أو أحرف أحادية البايت (أحرف ضيقة) ، اعتمادا على إعدادات المشروع. وشار هو نوع البيانات التي توفر الدعم للعمل مع مجموعة واسعة من الأحرف في لغة البرمجة سي programming.
الحجم:
تشار يمكن أن يستغرق 1 أو 2 بايت في الذاكرة ، في حين أن وشار عادة ما يستغرق 2 بايت. باستخدام تشار يسمح لك لكتابة التعليمات البرمجية التي سوف تعمل على حد سواء على منصات مع أحرف بايت واحد وعلى منصات مع أحرف واسعة.
الدعم:
يتم توفير تشار ودعمها من قبل مكتبة فئة مؤسسة مايكروسوفت (مفك) ، فضلا عن بعض المكتبات الأخرى. ويدعم وشار من قبل مكتبة سي standard القياسية ويمكن استخدامها دون استخدام مكتبات إضافية.
رموز مجموعة واسعة:
تشار لا يعالج الأحرف واسعة النطاق مباشرة ، بدلا من ذلك يستخدم وحدات الماكرو مثل _ت() أو النص () لتحويل الأحرف إلى التمثيل المناسب. وتشار يدعم الاستخدام المباشر لمجموعة واسعة من الشخصيات.
واحدة من المزايا الرئيسية لاستخدام تشار هو أنه يسمح لك لإنشاء رمز المحمولة التي سيتم تشغيلها على منصات مختلفة مع إعدادات المشروع المختلفة. ومع ذلك ، إذا كنت بحاجة إلى دعم لمجموعة واسعة من الشخصيات ، ثم استخدام وشار هو الأفضل.
تعدد الشخصيات
يوفر نوع بيانات وتش ت القدرة على العمل مع أحرف واسعة ، والتي يمكن أن تمثل ليس فقط الأحرف العادية ، ولكن أيضا أحرف من أنظمة الكتابة المختلفة ، مثل يونيكود. تشغل هذه الأحرف مساحة أكبر في الذاكرة لأن كل حرف يتم ترميزه باستخدام وحدتي بايت.
في المقابل ، تشار هو ماكرو ، اعتمادا على إعدادات المشروع ، يمكن نشرها إلى نوع البيانات شار أو وتش ت. هذا يسمح لك لكتابة رمز عبر منصة من شأنها أن تعمل على حد سواء على أنظمة مع أحرف بايت واحد (أسي) وعلى أنظمة مع أحرف بايت مزدوجة (يونيكود).
ومع ذلك ، ضع في اعتبارك أن بعض الصعوبات قد تنشأ عند العمل مع تشار. على سبيل المثال ، إذا كانت السلسلة تحتوي على أحرف من أنظمة كتابة مختلفة ، ثم اعتمادا على إعدادات المشروع ونوع بيانات تشار ، قد يتم تمثيل هذه الأحرف بطرق مختلفة.
لحل مثل هذه المشاكل ، فمن المستحسن استخدام وظائف مصممة خصيصا للعمل مع أحرف متعددة ، على سبيل المثال ، وظائف من مكتبة أبي ويندوز. تسمح لك هذه الوظائف بمعالجة وعرض الأحرف بشكل صحيح على أنظمة كتابة مختلفة ، مع الحفاظ على شكلها الأصلي.
- عند العمل مع تشار وتعدد الأحرف ، يجب أن تأخذ في الاعتبار نوع البيانات التي يتم ترجمة الأحرف إليها. إذا كان نوع البيانات عالميا (على سبيل المثال ، وشار_ت) ، فيمكنك استخدام وظائف مصممة خصيصا للعمل مع أحرف متعددة.
- إذا كان نوع البيانات عبارة عن حرف أحادي البايت (على سبيل المثال ، حرف) ، فقد يتم عرض بعض الأحرف بشكل غير صحيح أو حتى فقدها عند التحويل من تنسيق عريض إلى تنسيق ضيق.
وبالتالي ، عند العمل مع تشار ورموز متعددة ، يجب أن تكون حذرا ومراقبة أنواع البيانات والوظائف والإعدادات للمشروع من أجل تجنب فقدان المعلومات أو عرض غير صحيح للرموز.
| نوع البيانات | أمثلة على وظائف للعمل مع شخصيات متعددة |
|---|---|
| وتش | مولتيبيتويدشار ، ويديتشارتومولتيبيت |
| شار | على نطاق واسعكارتومولتيبيت ، مولتيبيتيتوويدشار |