سؤال

ما هي لغات البرمجة المستخدمة على نطاق واسع تم تصميمها مع دعم Unicode؟

أضافت الكثير من لغات البرمجة دعم Unicode كطريقة لاحقة في الإصدارات اللاحقة ، ولكن ما هي اللغات المستخدمة على نطاق واسع مع دعم Unicode من اليوم الأول؟

هل كانت مفيدة؟

المحلول

ربما كانت جافا أول لغة شعبية تحصل على دعم Unicode.

نصائح أخرى

في الأساس جميع لغات .NET هي لغات أحادية ج# و VB.NET.

كان هناك العديد من التغييرات كسر في بيثون 3 ، من بينها التحول إلى Unicode لجميع النصوص.

لذا بيثون لم يكن مصممًا على الأرض لليونيكود ، لكن بيثون 3 كنت.

لا أعرف إلى أي مدى يسير هذا بلغات أخرى ، ولكن شيء ممتع في C# هو أنه ليس فقط مدة العرض (ال string فئة وما إلى ذلك) unicode alking - لكن Unicode مدعوم بالكامل في المصدر:

using משליט = System.Object;
using תוצאה = System.Int32;
public class שלום : משליט  {
    public תוצאה בית() {
        int אלף = 0;
        for (int λ = 0; λ < 20; λ++) אלף+=λ;
        return אלף;
    }
}

جوجل الذهاب لغة البرمجة يدعم Unicode ويعمل مع UTF-8.

من الصعب حقًا تصميم دعم Unicode للمستقبل ، بلغة برمجة منذ البداية.

Java هي واحدة من اللغات التي صممت هذا في مواصفات اللغة. ومع ذلك ، دعم Unicode في V1.0 من Java يختلف عن V5 و V6 من Java SDK. ويرجع ذلك في المقام الأول إلى إصدار Unicode الذي تلبيه مواصفات اللغة ، عندما تم تصميم اللغة في الأصل. تحاول Java تتبع التغييرات في معيار Unicode مع كل إصدار رئيسي.

يمكن للتطبيقات المبكرة لـ JLS المطالبة بدعم Unicode ، وذلك في المقام الأول لأن Unicode نفسها دعمت 65536 حرفًا (v1.0 من Java مدعومة Unicode 1.1 ، و java v1.4 دعمت Unicode 3.0) والتي كانت متوافقة مع مساحة التخزين 16 بت التي يتم تناولها بواسطة الشخصيات . لقد تغير ذلك مع Unicode 3.1 - إنه معيار متطور ، وعادة ما يتم إضافة المزيد من الشخصيات في كل إصدار. تم استدعاء الشخصيات المضافة لاحقًا في 3.1 الشخصيات التكميلية. تمت إضافة دعم الشخصيات التكميلية في Java 5 عبر JSR-204; ؛ Java 5 و 6 يدعم Unicode 4.0.

لذلك ، لا تفاجأ إذا كانت لغات البرمجة المختلفة تنفذ دعم Unicode بشكل مختلف.

من ناحية أخرى ، لم يكن لدى PHP (!!) و Ruby دعم Unicode مدمج فيها أثناء نشأته.

ملاحظة: يتم إجراء دعم V5.1 من Unicode جافا 7.

Java ولغات .NET ، كما أشار المعلقون الآخرون ، على الرغم من أن سلاسل Java هي UTF-16 بدلاً من UCS أو UTF-8. (في ذلك الوقت ، بدا الأمر وكأنه فكرة معقولة! من الواضح الآن أن UTF-8 أو UCS سيكون أفضل.) و Python 3 هي حقًا لغة مختلفة وغير متوافقة مع Python 1.x و 2.x ، لذلك فهي مؤهلة أيضًا.

ربما كانت لغات الخطة 9 حوالي عام 1992 أول من فعل ذلك: لهجة C ، rc, ، أليف ، mk, ، الحمض ، وهلم جرا ، كانت جميعها تدعم اليونيكود. لقد اتخذوا النهج البسيط للغاية بأن أي شيء لم يكن ASCII كان شخصية معرف. انظر لهم ورقة من عام 1993 حول هذا الموضوع. (هذا هو المشروع الذي تم فيه اختراع UTF-8 ، مما يعني أنه يمكنهم القيام بذلك بطريقة متوافقة إلى حد ما ، لا سيما دون النص الثنائي للسباكة من خلال جميع برامجهم.)

اللغات الأخرى التي تدعم المعرفات غير ASCII تشمل PHP الحالي.

بيرل 6 لديه دعم Unicode كامل من نقطة الصفر.
(مع ال برنامج التحويل البرمجي Rakudo Perl 6 كونه أول تطبيق)

لمحة عامة

عوامل Unicode

تعمل الأوتار والتعبيرات المنتظمة والقواعد جميعها بناءً على Graphemes ، حتى بالنسبة لمجموعة CodePoint التي لا يوجد تمثيل مؤلف (يتم إنشاء نقطة تصنيع مؤلفة من خلال الطيران لتلك الحالات).

يوجد ترميز خاص للتعامل مع بيانات الترميز غير المعروف "UTF8-C8": هذا يفترض UTF-8 عندما يكون ذلك ممكنًا ، ولكنه ينشئ نقاط ترميز اصطناعية للتسلسلات غير القابلة للتشكيل ، مما يسمح لهم بالاستقبال إذا لزم الأمر.

في بعض الأحيان ، فإن الميزة التي تم تضمينها بلغة عندما تم تصميمها لأول مرة ليست الأفضل دائمًا.

لقد تغيرت اللغات مع مرور الوقت وأصبحت العديد منها منتفخة بميزات إضافية ، في حين لا تحافظ بالضرورة على الميزات التي تضمنتها لأول مرة.

لذلك أنا فقط أطرح فكرة أنه لا ينبغي بالضرورة خصم اللغات التي أضافت Unicode مؤخرًا. سيكون لديهم ميزة إضافة Unicode إلى أداة تطوير ناضجة بالفعل ، والحصول على الفرصة للقيام بذلك بشكل صحيح في المرة الأولى.

مع وضع ذلك في الاعتبار ، أريد التأكد من تضمين Delphi هنا ، كأحد إجاباتك. أضاف Embarcadero Unicode في إصدار Delphi 2009 وقام بعمل جيد رائع عليه. كان يكفي أن دفعني أخيرًا إلى الترقية من Delphi 4 التي كنت أستخدمها لمدة 10 سنوات.

تستخدم Java الأحرف من مجموعة أحرف Unicode.

لغات Java و .net

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top