ইউটিএফ-৮
ইউটিএফ-৮ হল একটি অনির্দিষ্ট-প্রস্থের বর্ণ সংকেতায়ন বা ক্যারেক্টার এনকোডিং ব্যবস্থা যা ইলেকট্রনিক যোগাযোগের জন্য ব্যবহৃত হয়। ইউটিএফ-৮ শব্দটি ইউনিকোড ট্রান্সফরমেশন ফরমেট – এইট - বিট (ইং:Unicode Transformation Format – 8-bit) থেকে নেওয়া হয়েছে যা ইউনিভার্সাল কোডেড ক্যারাক্টার সেট তথা ইউনিকোড কর্তৃক সংজ্ঞায়িত।[1]
ইউটিএফ-৮ এক থেকে চারটি এক-বাইটের (৮-বিটের) কোড ইউনিট ব্যবহারের করে ইউনিকোডের ১১,১২,০৬৪ টি [nb 1] বৈধ অক্ষর কোড পয়েন্টের সবগুলোকে সংকেত করতে সক্ষম। কম সাংখ্যিক মানের কোড পয়েন্টগুলো, যেগুলোর বেশি ঘন ঘন ব্যবহার হয়, সেগুলো কম বাইট ব্যবহার করে সংকেত করা হয়। এটি অ্যাস্কি-এর সাথে উপযোগী হওয়ার জন্য ডিজাইন করা হয়েছিল: ইউনিকোডের প্রথম ১২৮টি অক্ষর, যা অ্যাস্কি- এর সাথে এক-এক-এর অনুরূপ, অ্যাস্কি- এর মতো একই বাইনারি মান সহ একটি একক বাইট ব্যবহার করে সংকেত করা হয়, তাই বৈধ অ্যাস্কি পাঠ্য বৈধ ইউটিএফ-৮ -এ সঙ্কেতায়িত ইউনিকোডও বটে। যেহেতু অ্যাস্কি বাইটগুলি ইউটিএফ-৮ এ অ্যাস্কি নয়-এমন কোড পয়েন্ট সংকেত করার সময় আসে না, তাই ইউটিএফ-৮ বেশিরভাগ প্রোগ্রামিং এবং নথির ভাষার মধ্যে ব্যবহার করা নিরাপদ যা নির্দিষ্ট ইউটিএফ-৮ অক্ষরকে একটি বিশেষ উপায়ে ব্যবহার করে, যেমন ফাইলের নামগুলিতে /
(স্ল্যাশ), \
( ব্যাকস্ল্যাশ ) বিশেষ অক্ষর এ, এবং %
printf, এর মধ্যে।
ইউটিএফ-৮ এখন পর্যন্ত ওয়ার্ল্ড ওয়াইড ওয়েবের জন্য সাধারণতম সংকেতায়ন ব্যবস্থা, যা সমস্ত ওয়েব পেজের ৯৮% এর বেশি এবং ২০২১ সাল পর্যন্ত কিছু ভাষার জন্য ১০০% পর্যন্ত ব্যবহৃত হয়েছে। [2]
সংকেতায়ন
প্রথম কোড পয়েন্ট | শেষ কোড পয়েন্ট | বাইট ১ | বাইট ২ | বাইট ৩ | বাইট ৪ |
---|---|---|---|---|---|
U+০০০০ | U+০০৭F | ০xxxxxxx | |||
U+০০৮০ | U+০৭FF | ১১০xxxxx | ১০xxxxxx | ||
U+০৮০০ | U+FFFF | ১১১০xxxx | ১০xxxxxx | ১০xxxxxx | |
U+১০০০০ | [nb 2] U+১০FFFF | ১১১১০xxx | ১০xxxxxx | ১০xxxxxx | ১০xxxxxx |
প্রথম ১২৮টি অক্ষর (US-ASCII) সংকেত করতে প্রয়োজন এক বাইট। পরবর্তী ১,৯২০টি অক্ষর সংকেতে দুই বাইটের প্রয়োজন হয়, প্রায় সমস্ত ল্যাটিন-স্ক্রিপ্ট বর্ণমালার অবশিষ্ট অংশ এবং আইপিএ এক্সটেনশন, গ্রীক, সিরিলিক, কপটিক, আর্মেনিয়ান, হিব্রু, আরবি, সিরিয়াক, থানা , এনকো বর্ণমালা এবংডায়াক্রিটিক্যাল মার্কসের সমন্বয়ও এর অন্তর্ভুক্ত। বাকি মুল-ধারার বহুভাষিক গোষ্ঠীর অক্ষরগুলোর জন্য তিন বাইটের প্রয়োজন হয়, যা সাধারণ ব্যবহারের কার্যত সমস্ত অক্ষর ধারণ করে, [3] বেশিরভাগ চীনা, জাপানি এবং কোরিয়ান অক্ষর সহ । ইউনিকোডের অন্যান্য গোষ্ঠীর অক্ষরের জন্য চারটি বাইট প্রয়োজন, যার মধ্যে কম ব্যবহৃত সিজেকে অক্ষর, বিভিন্ন ঐতিহাসিক স্ক্রিপ্ট, গাণিতিক প্রতীক এবং ইমোজি (চিত্রগ্রাহী প্রতীক) রয়েছে।
একটি "অক্ষর" প্রকৃতপক্ষে ৪ বাইটের বেশি জায়গা নিতে পারে, যেমন একটি ইমোজি পতাকা অক্ষর ৮ বাইট জায়গা নেয় কারণ এটি "ইউনিকোড স্কেলার মানগুলির জোড়া থেকে নির্মিত"। [4]
ব্যবহার
ইউটিএফ-৮ হল এইচটিএমএল এবং ডিওএম ধরনের জন্য'ডব্লিউএইচএটিডব্লিউজি'র দ্বারা সুপারিশকৃত [5] এবং ইন্টারনেট মেইল কনসোর্টিয়াম সুপারিশ করে যে সমস্ত ই-মেইল প্রোগ্রাম ইউটিএফ-৮ ব্যবহার করে মেইল প্রদর্শন এবং তৈরি করতে পারা উচিত। [6] [7] ওয়ার্ল্ড ওয়াইড ওয়েব কনসোর্টিয়াম ইউটিএফ-৮ কে এক্সএমএল এবং এইচটিএমএল -এ প্রাথমিক সংকেত ব্যবস্থা হিসাবে সুপারিশ করে (এবং শুধু ইউটিএফ-8 ব্যবহার না করে, এটি মেটাডেটাতেও উল্লেখ করে, "এমনকি যখন সমস্ত অক্ষর অ্যাস্কি সীমানাতে থাকে, ইউটিএফ-৮ নয় এমন সংকেতায়ন ব্যবহার করলে অপ্রত্যাশিত ফলাফল হতে পারে "। অন্যান্য অনেক স্ট্যান্ডার্ড শুধুমাত্র ইউটিএফ-৮ সমর্থন করে, যেমন JSON এক্সচেঞ্জ খুলতে। [8]
তথ্যসূত্র
- "Chapter 2. General Structure"। The Unicode Standard (6.0 সংস্করণ)। The Unicode Consortium। আইএসবিএন 978-1-936213-01-6।
- "Usage Survey of Character Encodings broken down by Ranking"। w3techs.com (ইংরেজি ভাষায়)। সংগ্রহের তারিখ ২০২১-০৬-৩০।
- "The Unicode Standard, Version 6.1"। Unicode Consortium। ২০১২।
- "Apple Developer Documentation"। developer.apple.com। সংগ্রহের তারিখ ২০২১-০৩-১৫।
- "Encoding Standard"। encoding.spec.whatwg.org। সংগ্রহের তারিখ ২০২০-০৪-১৫।
- "Using International Characters in Internet Mail"। Internet Mail Consortium। ১৯৯৮-০৮-০১। ২০০৭-১০-২৬ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০০৭-১১-০৮।
- "Encoding Standard"। encoding.spec.whatwg.org (ইংরেজি ভাষায়)। সংগ্রহের তারিখ ২০১৮-১১-১৫।
- "The JavaScript Object Notation (JSON) Data Interchange Format"। IETF। ডিসেম্বর ২০১৭। সংগ্রহের তারিখ ১৬ ফেব্রুয়ারি ২০১৮।
- 17 planes times 216 code points per plane, minus 211 technically-invalid surrogates.
- The earlier RFC2279 allowed UTF-8 encoding through code point U+7FFFFFF. But the current RFC3629 §3 limits UTF-8 encoding through code point U+10FFFF, to match the limits of UTF-16.