ইউনিকোড
ইউনিকোড একটি আন্তর্জাতিক বর্ণ সংকেতায়ন ব্যবস্থা। ইউনিকোড কনসোর্টিয়াম সংস্থা এর রক্ষণাবেক্ষণের দায়িত্ব পালন করে। যেকোন প্রতিষ্ঠান বা ব্যক্তি ফি দিয়ে সংস্থাটির সদস্য হতে পারে। বর্তমানে ইউনিকোডে ১০,০০০ এর বেশি বর্ণ তালিকাভুক্ত রয়েছে। বিশ্বের প্রায় সব প্রধান কম্পিউটার সফ্টওয়্যার ও হার্ডওয়্যার প্রতিষ্ঠানসমূহ সংস্থাটির বর্তমান সদস্য, যেমন , , , , , এবং আরও অনেক প্রতিষ্ঠান যারা টেক্সট্-প্রসেসিং স্ট্যান্ডার্ড সম্পর্কে আগ্রহী। ইউনিকোড কনসোটিয়াম একটি অলাভজনক সংগঠন যেটি ইউনিকোডের উন্নয়নে কাজ করে যাচ্ছে এই সংগঠনের মূল লক্ষ হচ্ছে সকল ভাষাকে একটি নির্দিষ্ট মানদন্ডে নিয়ে আসা।
১৯৮৭ সালে ইউনিকোডের কাজ শুরু করেছিলেন জেরোক্স (Xerox) এর জো বেকার (Joe Becker) এবং অ্যাপল (Apple) এর লি কলিন্স (Lee Collins) ও মার্ক ডেভিস (Mark Davis)। তাঁদের মূল লক্ষ্য ছিল সকল ভাষাকে একটি সার্বজনীন সংকেতায়নের মানদন্ডে নিয়ে আসা।ফলশ্রুতিতে পরবর্তী বছরের আগষ্ট মাসে জো বেকার "International/multilingual text character encoding system, tentatively called Unicode." (অনুবাদ : "আন্তর্জাতিক/বহুভাষিক বর্ণ সংকেতায়ন ব্যবস্থা") নামে একটি খসড়া প্রস্তবনা তৈরি করেন। এই প্রস্তাবনাটি ছিল একটি ১৬ বিট এর বর্ণ সংকেতায়ন ব্যবস্থা:
Unicode is intended to address the need for a workable, reliable world text encoding. Unicode could be roughly described as "wide-body ASCII" that has been stretched to 16 bits to encompass the characters of all the world's living languages. In a properly engineered design, 16 bits per character are more than sufficient for this purpose.
১৬ বিট এর বর্ণ সংকেতায়ন ব্যবস্থার কারণ ছিল তিনি মনে করেছিলেন শুধুমাত্র আধুনিক ভাষার বর্ণগুলি ব্যবহৃত হবে।
Unicode gives higher priority to ensuring utility for the future than to preserving past antiquities. Unicode aims in the first instance at the characters published in modern text (e.g. in the union of all newspapers and magazines printed in the world in 1988), whose number is undoubtedly far below 214 = 16,384. Beyond those modern-use characters, all others may be defined to be obsolete or rare; these are better candidates for private-use registration than for congesting the public list of generally-useful Unicodes.
পরবর্তীতে অনেক পুরাতন ভাষার জন্য ও তালিকাভুক্ত করার প্রয়োজন পড়ে। এদের মাঝ এমন ভাষাও রয়েছে যেগুলি বর্তমানে আর ব্যবহৃত হয় না। (যেমন: মিশরীয় চিত্রলিপি, লিনিয়ার-এ, লিনিয়ার-বি ইত্যাদি)
১৯৮৯ সালে মেটাফোর (Metaphor)-এর কেন হুইস্লার (Ken Whistler) এবং মাইক কার্নাগান (Mike Kernaghan), আর.এল.জি (RLG)-এর ক্যারেন স্মিথ-ইয়োশিমুরা (Karen Smith-Yoshimura) ও জোয়ান আলিপ্র্যান্ড (Joan Aliprand) এবং সান মাইক্রোসিস্টেমস্ (Sun Microsystems)-এর গ্লেন্ রাইট (Glenn Wright) ইউনিকোডের গ্রুপে যোগদান করেন। পরবর্তীতে ১৯৯০ সালে মাইক্রোসফ্ট (Microsoft)-এর মিচেল সুইগনার্ড (Michel Suignard) ও অ্যাস্মাস ফ্রেইট্যাগ (Asmus Freytag) এবং NeXT এর রিক ম্যাকগোয়ান (Rick McGowan) যোগদান করেন। ১৯৯০ সালের শেষের দিকে ইউনিকোডের খসড়া প্রস্তাবনা সম্পন্ন হয়। ১৯৯১ এর অক্টবরে ইউনিকোডের প্রথম খন্ড প্রকাশিত হয়। ১৯৯২ সালের জুনে ইউনিকোডের দ্বিতীয় খন্ড প্রকাশিত হয়।
বুলীয় বীজগণিতের নিয়মে গণনা করায় কম্পিউটার কেবলমাত্র শূন্য বা ০ বা অফ এবং এক বা ১ বা অন এই দুটি অবস্থা বোঝে । এক-একটি সংখ্যাকে বোঝানোর জন্য কম্পিউটারে ০ এবং ১ এর বিভিন্ন ক্রম ব্যবহার করা হয় । কম্পিউটারে লিপি বা অন্যান্য অক্ষর সংরক্ষিত হয় সেই অক্ষরগুলির প্রতিটির জন্য ০ ও ১-এর অদ্বিতীয় একটি ক্রম দিয়ে । একটি বর্ণ সংকেতায়ন ব্যবহ্থা এরূপ একটি অদ্বিতীয় ক্রমের সঙ্গে একটি অক্ষরকে সংযুক্ত করে । এই সমস্ত ক্রমগুলিকে একত্রে বলা হয় "কোডস্পেস্" এবং কোডস্পেসের অন্তর্ভুক্ত প্রত্যেকটি ক্রমকে "ক‌োড পয়েন্ট" বলা হয় । কম্পিউটারে ব্যবহারের জন্য একাধিক বর্ণসংকেতায়ন ব্যবস্থা রয়েছে । প্রত্যেকটি অক্ষরের জন্য বিভিন্ন বর্ণসংকেতায়ন ব্যবস্থায় ওই অদ্বিতীয় সংখ্যার মান ভিন্ন হওয়ায় তথ্য আদানপ্রদানে অসুবিধা দেখা দেয় । ইউনিকোডে প্রত্যেকটি পরিচিত অক্ষরের জন্য একটি করে কোডপয়েন্ট বরাদ্দ করা হয় এবং প্রত্যেকটি কোডপয়েন্টকে একটি অদ্বিতীয় ষষ্ঠদশনিধান বিশিষ্ট পূর্ণসংখ্য দ্বারা চিহ্নিত করা হয় । "U+" এর পর কোডপয়েন্টটির ষষ্ঠদশনিধান বিশিষ্ট সংখ্যাটিকে লিখে কোডপয়েন্টটিকে চিহ্নিত করা হয় । ইউনিকোডে বর্তমানে ১১,১৪,১১২ সংখ্যক ক‌োডপয়েন্ট রয়েছে, যেগুলিকে 0 থেকে 10FFFF পর্যন্ত সংখ্যগুলি দ্বারা চিহ্নিত করা হয় । যদিও প্রত্যেকটি কোডপয়েন্ট লিখনযোগ্য অক্ষরকে নির্দেশ করে না । উদাহরণস্বরূপ, U+200F কোডপয়েন্টটি Zero Width Non-Joiner অক্ষরটিকে চিহ্নিত করে, যেটিকে মুদ্রিত করা বা কম্পিউটারের মনিটরে দেখানো সম্ভব নয় ।