# প্রতীক সংকেতায়ন পদ্ধতি
সংক্ষিপ্ত ইউআরএল

পরিগণন (কম্পিউটিং), পরিগণক উপাত্ত সংরক্ষণ (কম্পিউটার ডাটা স্টোরেজ) এবং মানববোধ্য পাঠ্য-উপাত্ত সম্প্রচারের (ডাটা ট্রান্সমিশন) আলোচনায় **প্রতীক সংকেতায়ন পদ্ধতি** বা **ক্যারেকটার এনকোডিং** (ইংরেজি: character encoding) বলতে কোনও এক ধরনের সাংকেতিক ব্যবস্থার সাহায্যে একটি মানববোধ্য পাঠ্য-প্রতীকসম্ভারের প্রতিটি প্রতীকের জন্য একটি করে সাংকেতিক সংখ্যা বরাদ্দ করার পদ্ধতিকে বোঝানো হয়, যার উদ্দেশ্য মানববোধ্য পাঠ্যপ্রতীকগুলিকে পরিগণক যন্ত্রে (কম্পিউটার) দ্বি-আংকিক (ডিজিটাল) উপাত্ত হিসেবে সংরক্ষণ ও প্রক্রিয়াজাতকরণ এবং টেলিযোগাযোগ ব্যবস্থার মাধ্যমে ঐসব উপাত্ত সম্প্রচারের কাজটি বাস্তবায়ন করা।

প্রতীক সংকেতায়ন ধারণাটির সাথে প্রতীক-সংগ্রহ (character set), প্রতীক মানচিত্র (character map), সংকেত-সংগ্রহ ও সংকেত-পাতা (code page) ধারণাগুলির সম্পর্ক আছে, তবে এগুলির সংজ্ঞা ভিন্ন।

## ব্যাখ্যা

মানুষের লিখিত ভাষায় ব্যবহৃত বর্ণমালার বিভিন্ন বর্ণ, যতিচিহ্ন ও অন্যান্য প্রতীক, যেগুলিকে পরিগণক যন্ত্রে সংরক্ষণ ও প্রক্রিয়াজাত করা হয় এবং টেলিযোগাযোগ ব্যবস্থার মাধ্যমে সম্প্রচার করা হয়, সেগুলিকে *মানববোধ্য পাঠ্যপ্রতীক* বা ক্যারেকটার (Character) বলে। বহুসংখ্যক মানববোধ্য পাঠ্যপ্রতীকের সমন্বয়ে গঠিত হয় মানববোধ্য শব্দ ও বহুসংখ্যক মানববোধ্য শব্দের সমবায়ে গঠিত হয় মানববোধ্য *পাঠ্যবস্তু* বা টেক্সট (Text)। কিন্তু মানববোধ্য পাঠ্যপ্রতীক বা পাঠ্যবস্তুগুলিকে পরিগণক যন্ত্রের অভ্যন্তরে এগুলির মূল মানববোধ্য রূপে সংরক্ষণ করা সম্ভব নয়, কেননা একটি পরিগণক যন্ত্র মানুষের ভাষা সরাসরি বুঝতে পারে না। পরিগণক যন্ত্র বিদ্যুতের সাহায্যে কাজ করে এবং এটি কেবলমাত্র বৈদ্যুতিক আধানের উপস্থিতি বা অনুপস্থিতিকে কাজে লাগিয়ে শূন্য (o) ও এক (১) দ্বারা নির্দেশিত দ্বি-আংকিক উপাত্ত সংরক্ষণ ও প্রক্রিয়াজাত করতে পারে তথা "বুঝতে" পারে। তাই মানববোধ্য পাঠ্যবস্তুকে পরিগণক যন্ত্রের জন্য "বোধগম্য" রূপে প্রবিষ্ট করতে হলে এগুলিকে দ্বি-আংকিক সংখ্যায় রূপান্তরিত করে নিতে হয়। যখনই কোনও পরিগণক যন্ত্রের (কম্পিউটারের) চাবিফলকে (কিবোর্ডে) অবস্থিত কোনও মানববোধ্য পাঠ্যপ্রতীক (ক্যারেক্টার) সম্বলিত চাবিতে (কি) চাপ দেওয়া হয়, তখন চাবিফলক থেকে পরিগণকটিতে একটি সাংকেতিক সংখ্যা প্রেরিত হয়। এই সাংকেতিক সংখ্যাটিকে পরবর্তীতে দ্বি-আংকিক সংখ্যায় রূপান্তরিত করে পরিগণকের অভ্যন্তরে সংরক্ষিত ও প্রক্রিয়াজাত করা হয়।

একটি প্রতীক সংকেতায়ন পদ্ধতির কাজ হল পরিগণক যন্ত্রে চাবিফলকের সাহায্যে প্রবিষ্টিযোগ্য প্রতিটি পাঠ্যপ্রতীকের জন্য একটি করে সাংকেতিক সংখ্যা বরাদ্দ করা। এই ব্যাপারটিকে বেশ কয়েকটি ধাপে ভাগ করা যায়। প্রথম ধাপে যে পাঠ্যপ্রতীকগুলিকে সংকেতায়িত করতে হবে, সেগুলির একটি অবিন্যস্ত তালিকা নির্মাণ করা হয়, যাকে *বিমূর্ত প্রতীক সম্ভার* (Abstract Character Repertoire) বলা হয়। এই প্রতীকসম্ভারটি স্থিরকৃত বা বদ্ধ হতে পারে (যেমন আইএসও ৮৮৫৯-১ মানে সংজ্ঞায়িত) কিংবা উন্মুক্ত হতে পারে (যেমন ইউনিকোডের প্রতীকসম্ভার)।

দ্বিতীয় ধাপে বিমূর্ত প্রতীক সম্ভারের প্রতিটি মানববোধ্য পাঠ্যপ্রতীকের জন্য দশমিক সংখ্যা পদ্ধতির একটি অঋণাত্মক পূর্ণ সংখ্যা বরাদ্দ করা হয়। এর ফলে পূর্ণসংখ্যার যে তালিকাটি সৃষ্টি হয়, তাকে সংকেতায়িত প্রতীক সেট (Coded Character Set, সংক্ষেপে CCS) বলে। এভাবে প্রদত্ত প্রতীক সম্ভারের বিপরীতে পূর্ণসংখ্যায় সংকেতায়িত প্রতীক সেট নির্মাণ করার পদ্ধতিটিই হল প্রতীক সংকেতায়ন পদ্ধতি। সংকেতায়িত প্রতীকের সেটের একেকটি পূর্ণসংখ্যাকে একেকটি সংকেত বিন্দু (Code point) বলে।

তৃতীয় ধাপে পরিগণক যন্ত্রের ভেতরে প্রবেশ করানোর সময় সংকেত বিন্দুর দশমিক পূর্ণসংখ্যাটিকে একটি দ্বি-আংকিক (বাইনারি) সংখ্যায় রূপান্তরিত করে নেওয়া হয়। একে প্রতীক সংকেতায়ন রূপ (Character Encoding Form, সংক্ষেপে CEF) বলে। পরিগণক যন্ত্রে ও টেলিযোগাযোগ ব্যবস্থায় ব্যবহৃত ডিজিটাল উপাত্ত তথা দ্বি-আংকিক উপাত্তগুলির ক্ষুদ্রতম একক হল *বিট*, যা শূন্য বা এক - এই দুইটি অংকের যেকোনও একটি মান ধারণ করতে পারে। ৮টি বিট দিয়ে গঠিত অপেক্ষাকৃত বৃহত্তর ডিজিটাল উপাত্তের এককটিকে *বাইট* বলে। ১৬টি বিট দিয়ে গঠিত একককে *ওয়ার্ড* এবং ৩২টি বিট দিয়ে গঠিত একককে *ডাবল-ওয়ার্ড* বলে। উপরের দ্বিতীয় ধাপে সৃষ্ট সংকেতায়িত প্রতীক সেটের প্রতিটি সংকেত বিন্দুকে নির্দিষ্টসংখ্যক বিটের দৈর্ঘ্যবিশিষ্ট একটি দ্বি-আংকিক অনুক্রমে মানচিত্রিত করা হয়, যাকে সংকেত একক (Code Unit) বলে। অ্যাস্‌কি পদ্ধতিতে প্রতিটি প্রতীক তথা সংকেত বিন্দুকে একটিমাত্র ৭ বিট দৈর্ঘ্যের সংকেত একক ব্যবহার করে দ্বি-আংকিক রূপ দেওয়া হয়। আবার ইউটিএফ-৮ পদ্ধতিতে প্রতীক বা সংকেত বিন্দুগুলিকে এক থেকে চারটি ৮-বিটের বাইট দিয়ে গঠিত চারটি ভিন্ন দৈর্ঘ্যের (৮ বিট, ১৬ বিট, ২৪ বিট ও ৩২ বিট) সংকেত একক দ্বারা দ্বি-আংকিক রূপ দেওয়া হতে পারে।

## ইতিহাস

### মোর্স সাংকেতিক পদ্ধতি

১৯শ ও ২০শ শতকে তারবার্তা বা টেলিগ্রাফে ব্যবহৃত মোর্স সাংকেতিক পদ্ধতিতে লাতিন বর্ণমালার বর্ণগুলিকে টেলিগ্রাফ চাবিকে দীর্ঘ ও স্বল্প সময় ধরে টেপার একেকটি স্বতন্ত্র অনুক্রম হিসেবে সংকেতায়িত করা হত। এটি দ্বারা মূলত পাশ্চাত্যের কিছু ভাষার লিখিত বর্ণ ও প্রতীকগুলির কিয়দংশ (বড় হাতের বর্ণ, অঙ্ক ও কিছু বিরামচিহ্ন) সংকেতায়িত করা সম্ভব হয়েছিল।

### অ্যাস্‌কি সাংকেতিক পদ্ধতি

বিশ শতকের শেষভাগে এসে আন্তর্জাতিকভাবে স্বীকৃতিপ্রাপ্ত আদর্শ অনুসরণকারী প্রতীক সংকেতায়ন পদ্ধতিগুলির সুবাদে বিশ্বব্যাপী ইলেকট্রনীয় বা বৈদ্যুতিন রূপে পাঠ্য বিষয়বস্তু সম্বলিত উপাত্ত বিনিময় সম্ভব হয়েছে। এরকম প্রথম দিককার একটি স্বীকৃত আদর্শ প্রতীক সংকেতায়ন পদ্ধতি ছিল অ্যাস্‌কি (অ্যামেরিকান স্ট্যান্ডার্ড কোড ফর ইনফর্মেশন ইন্টারচেঞ্জ, "তথ্য বিনিময়ের জন্য মার্কিন আদর্শ সাংকেতিক পদ্ধতি")। দূরবার্তার মোর্স সাংকেতিক পদ্ধতির উপর ভিত্তি করে নির্মিত ও ১৯৬৩ সালে মার্কিন জাতীয় মান সংস্থা (American National Standards Institute) প্রস্তাবিত এই অ্যাস্‌কি সংকেতায়ন পদ্ধতিতে ইংরেজি বর্ণমালার বর্ণ (বড় ও ছোট হাতের মিলিয়ে ৫২টি), দশটি অঙ্ক, কিছু বিরামচিহ্ন, গাণিতিক প্রতীক ও অন্যান্য প্রতীককে ৩২ থেকে ১২৭-এর মধ্য অবস্থিত পূর্ণসংখ্যাগুলি দ্বারা এবং অতঃপর এগুলিকে কম্পিউটারে প্রক্রিয়াজাতযোগ্য ৭-বিটের দ্বি-আংকিক (বাইনারি) সংখ্যা হিসেবে সংকেতায়িত করা হয়। যেমন অ্যাস্‌কি পদ্ধতিতে ইংরেজি বড় হাতের এ (A) প্রতীকটিকে দশমিক পদ্ধতির পূর্ণসংখ্যা ৬৫ দ্বারা সংকেতায়িত করা হয় এবং এটিকে অতঃপর ৭-বিটের দ্বি-আংকিক (বাইনারি) সংখ্যা 01000001 দ্বারা সংকেতায়িত করা হয়। টেলিগ্রাফ বা তারবার্তায় ব্যবহৃত সংকেতগুলি অপেক্ষা অ্যাস্‌কি সংকেতগুলিকে বর্ণানুক্রমিকভাবে বিন্যস্ত করা অধিকতর সহজ হয়, এবং এটি টেলিপ্রিন্টার বা দূরমুদ্রণযন্ত্র ছাড়া অন্যান্য যন্ত্রেও ব্যবহারের সুবিধা ছিল। অ্যাস্‌কিতে ৯৪টি মুদ্রণযোগ্য প্রতীকের পাশাপাশি ৩৩টি অমুদ্রণীয় নিয়ন্ত্রক প্রতীকের ব্যবস্থা ছিল, যেগুলি কীভাবে পাঠ্যবস্তু, পঙক্তি, শূন্যস্থান প্রক্রিয়াজাত করা হবে, সে ব্যাপারে নির্দেশনা ধারণ করত। ২০০৮ সাল পর্যন্তও আন্তর্জালের বা ইন্টারনেটের ওয়ার্ল্ড ওয়াইড ওয়েবে (বিশ্বব্যাপী পরিগণক জালব্যবস্থায়) সবচেয়ে বেশী ব্যবহৃত প্রতীক সংকেতায়ন পদ্ধতি ছিল এই অ্যাস্‌কি।

### সম্প্রসারিত অ্যাস্‌কি

অ্যাস্‌কি পদ্ধতি ৭ বিটের সংকেত দিয়ে গঠিত হলেও এই সংকেতগুলি ৮ বিট দিয়ে গঠিত বাইট এককে সংরক্ষণ, প্রক্রিয়াজাত ও সম্প্রচার করা হত। ফলে অব্যবহৃত ৮ম বিটটির উপস্থিতির কারণে আরও ১২৮টি সংকেতবিন্দু ব্যবহারের সুযোগ ছিল। ১৯৮০-র দশকে ইংরেজির বাইরে পাশ্চাত্যের অন্যান্য ভাষার বর্ণমালাগুলিতে ব্যবহৃত বিভিন্ন বিশেষ চিহ্নযুক্ত বর্ণগুলিকে উপস্থাপনের জন্য অ্যাস্‌কি পদ্ধতিতে এই অব্যবহৃত সংকেতবিন্দুগুলি ব্যবহার করা শুরু হয়। এভাবে মূল ১২৮টি সংকেতবিন্দুর বাইরে দ্বিতীয় আরও ১২৮টি সংকেতবিন্দু নিয়ে যে পদ্ধতিগুলি সৃষ্টি করা হয়, সেই অতিরিক্ত ১২৮টি সংকেতের দলকে *সম্প্রসারিত অ্যাস্‌কি* বা *উচ্চতর অ্যাস্‌কি* নাম দেওয়া হয়। সম্প্রসারিত অ্যাস্‌কিগুলি একেক ভাষার জন্য একেকরকম ছিল। আইবিএম, মাইক্রোসফট, অ্যাপল ও অন্যান্য বাণিজ্যিক প্রযুক্তি নির্মাতা প্রতিষ্ঠান নিজের মতো করে এই সম্প্রসারিত অ্যাস্‌কিগুলি নির্মাণ করে, তাদের মধ্যে কোনও সমন্বয় ছিল না। সব মিলিয়ে প্রায় ২০০টিরও বেশি ভিন্ন ভিন্ন সম্প্রসারিত অ্যাস্‌কি নির্মাণ করা হয়। যেহেতু সম্প্রসারিত অ্যাস্‌কি নির্মাতাদের মধ্যে কোনও সমন্বয় ছিল না, তাই একই অ্যাস্‌কি সংকেত ভিন্ন ভিন্ন ভাষায় ভিন্ন প্রতীককে নির্দেশ করত। যেমন ফরাসি ভাষায় ব্যবহৃত সম্প্রসারিত অ্যাস্‌কি-তে ১৩০ প্রতীক সংকেতটি দিয়ে ফরাসি é (অ্য আকসঁ এগ্যু) প্রতীকটি নির্দেশ করা হত, কিন্তু হিব্রু ভাষার জন্য নির্মিত সম্প্রসারিত অ্যাস্‌কিতে ঐ একই ১৩০ প্রতীক সংকেতটি দিয়ে হিব্রু বর্ণ ג (গিমেল) নির্দেশ করা হত। আইবিএম তাদের ভিন্ন ভিন্ন ভাষার জন্য নির্মিত সম্প্রসারিত অ্যাস্‌কি সংকেতের সারণীগুলিকে সংকেত-পাতা (Code page) হিসেবে বর্ণনা করত। এই সংকেত-পাতাগুলিকে পরবর্তীতে মার্কিন জাতীয় মান সংস্থা অ্যানসি দ্বারা প্রমিত করা হয়।

### ইউনিকোড

আধুনিক পরিগণক ব্যবস্থাগুলিতে উপাত্তের দ্বি-আংকিক (ডিজিটাল) উপস্থাপনের খরচ কমে যাওয়ার কারণে আরও ব্যাপক পরিসরের প্রতীক সংকেতায়ন পদ্ধতি উদ্ভাবন করা সম্ভব হয়েছে, যেগুলিতে বিশ্বের বহুসংখ্যক লিখিত ভাষার প্রায় সমস্ত পাঠ্য প্রতীকগুলিকে সংকেতে রূপান্তরিত করার সুব্যবস্থা রয়েছে। এদের মধ্যে ২১শ শতকে সবচেয়ে ব্যাপকভাবে প্রচলিত মান বা আদর্শ পদ্ধতিটি হল ইউনিকোড (অর্থাৎ "বিশ্বজনীন সাংকেতিক পদ্ধতি")। ইউনিকোড কনসোর্টিয়াম (Unicode Consortium) নামক একটি অলাভজনক প্রতিষ্ঠান দ্বারা সৃষ্ট এই বিশ্বজনীন প্রমিত সাংকেতিক পদ্ধতি অনুযায়ী যে নির্দিষ্ট পরিসরের মধ্যে অবস্থিত পূর্ণসংখ্যাসমূহ ব্যবহার করে মানববোধ্য পাঠ্যপ্রতীকগুলিকে সংখ্যায় সংকেতায়িত করা হয়, সেই পূর্ণসংখ্যার পরিসরটিকে সংকেত জগৎ (Code space) বলে। সংকেত জগতে অবস্থিত একটি বিশেষ পূর্ণসংখ্যাকে সংকেত বিন্দু (Code point) বলে। তাত্ত্বিকভাবে ইউনিকোডে ১১ লক্ষ ১৪ হাজার ১১২টি সংকেত বিন্দু আছে। যখন কোনও মানবপাঠ্য প্রতীকের প্রতিনিধিত্ব করার জন্য সংকেত জগতের একটি সংকেত বিন্দুকে ধার্য বা বরাদ্দ করা হয়, তখন সেই প্রতীকটিকে সংকেতায়িত প্রতীক (Coded character) বলা হয়। ২০২২ খ্রিস্টাব্দের সেপ্টেম্বরে প্রকাশিতব্য ইউনিকোডের ১৫শ সংস্করণে এ পর্যন্ত ১ লক্ষ ৪৯ হাজার ১৪৭টি প্রতীকের জন্য সংকেত বিন্দু বরাদ্দ করা হয়েছে; অর্থাৎ ইউনিকোডের প্রায় ৮৬% সংকেত বিন্দু এখনও (২০২২ সাল পর্যন্ত) খালি আছে।

ইউনিকোড আদর্শে একই উপাত্তকে তিনটি রূপে সংকেতায়িত করার পদ্ধতি সংজ্ঞায়িত করা আছে, ফলে একই উপাত্ত একটি বাইট (৮ বিট), একটি ওয়ার্ড (১৬ বিট) এবং একটি ডাবল-ওয়ার্ড (৩২ বিট) বিন্যাসে সংরক্ষিত ও সম্প্রচারিত হতে পারে। তিনটি সংকেতায়ন রূপই একই প্রতীকসম্ভারের প্রতীকগুলিকে সংকেতায়িত করে এবং এগুলির একটি থেকে অপরটিতে উপাত্তহানি ব্যতিরেকে দক্ষতার সাথে রূপান্তর সম্ভব। ইউটিএফ-৮ পদ্ধতিতে প্রতিটি সংকেত বিন্দুকে ৮-বিটবিশিষ্ট এক বাইট (অ্যাস্‌কি প্রতীকসমূহের জন্য) হিসেবে কিংবা দুই, তিন বা চারটি বাইটের অনুক্রম হিসেবে সংরক্ষণ করা হয়। ইউটিএফ-১৬ পদ্ধতিতে প্রতিটি সংকেত বিন্দুকে ১৬-বিটবিশিষ্ট এক ওয়ার্ড হিসেবে কিংবা দুইটি ওয়ার্ডের অনুক্রম হিসেবে সংরক্ষণ করা হয়। ইউটিএফ-৩২ পদ্ধতিতে প্রতিটি সংকেত বিন্দুকে ৩২-বিটবিশিষ্ট এককে সংরক্ষণ করা হয়।

## তথ্যসূত্র