অন্যান্য বর্ণমালাগুলির তুলনায় ইংরাজী চরিত্রগুলিকে কেন কম বাইটের প্রয়োজন?


31

আমি যখন একটি টেক্সট ফাইলে 'এ' রাখি, এটি 2 বাইট করে তোলে তবে আমি যখন রাখি, তখন 'ա' বলি, এটি আর্মেনিয়ান বর্ণমালার একটি চিঠি, এটি এটি 3 বাইট করে।

কম্পিউটারের বর্ণমালার মধ্যে পার্থক্য কী?
ইংরেজী কেন কম জায়গা নেয়?


22
আপনার এই নিবন্ধটি স্ট্যাক এক্সচেঞ্জের প্রতিষ্ঠাতা: joelonsoftware.com/articles/Unicode.html
এরিক লিপার্ট

22
আমি মনে করি না "ইংরেজি অক্ষর" এর মতো জিনিস আছে thing তারা রোমান।
রাফেল

5
@ রাফেল সকলেই জানেন যে তিনি কী উল্লেখ করছেন। তবে চমৎকার অ্যাড।
ম্যাথিয়াস লাইককেগার্ড লরেঞ্জেন

1
@ রাফেল আসলে অনেকগুলি রোমান অক্ষর রয়েছে যা ইংরেজিতে ব্যবহৃত হয় না এবং এটি ASCII চরিত্রের সেটটিতে অন্তর্ভুক্ত হয় না। তাদের বেশিরভাগটিতে সংশোধক অন্তর্ভুক্ত রয়েছে, তবে এগুলি এখনও ইংরাজী ব্যতীত অন্যান্য লাতিন-লাত্রে ব্যবহৃত ভাষাগুলিতে সঠিকভাবে পাঠ্য রেন্ডার প্রয়োজন।
ওয়ুতাজ

7
@ রাফেল আমার মনে হয় না "রোমান চরিত্র" এর মতো জিনিস আছে। তারা লাতিন হয়।
ব্ল্যাকলাইট শাইনিং

উত্তর:


41

মূলধারার কম্পিউটারগুলিতে ব্যবহারের জন্য তৈরি করা প্রথম এনকোডিং স্কিমগুলির মধ্যে একটি হ'ল ASCII ( আমেরিকান স্ট্যান্ডার্ড কোড ফর ইনফরমেশন ইন্টারচেঞ্জ ) স্ট্যান্ডার্ড। এটি মার্কিন যুক্তরাষ্ট্রে 1960 এর দশকে বিকশিত হয়েছিল।

ইংরেজি বর্ণমালাটি লাতিন বর্ণমালার অংশ ব্যবহার করে (উদাহরণস্বরূপ, ইংরেজিতে কয়েকটি উচ্চারণ শব্দ রয়েছে)। সেই বর্ণমালায় 26 টি পৃথক বর্ণ রয়েছে, কেস বিবেচনা করছে না। এবং ইংরেজী বর্ণমালা এনকোড করার ভান করে যে কোনও স্কিমে পৃথক নম্বর এবং বিরাম চিহ্নগুলি উপস্থিত থাকতে হবে।

১৯60০ এর দশকও এমন একটি সময় ছিল যেখানে আমাদের কাছে বর্তমানে মেমরি বা ডিস্ক জায়গার পরিমাণ কম্পিউটারের ছিল না didn't এএসসিআইআই সমস্ত আমেরিকান কম্পিউটারে ক্রিয়ামূলক বর্ণমালার একটি আদর্শ প্রতিনিধিত্ব হিসাবে বিকাশিত হয়েছিল। সেই সময়ে, প্রতিটি এএসসিআইআই চরিত্রকে 8 বিট (1 বাইট) দীর্ঘ করার সিদ্ধান্ত নেওয়া হয়েছিল সেই সময়ের প্রযুক্তিগত বিবরণের কারণে (উইকিপিডিয়া নিবন্ধটিতে উল্লেখ করা হয়েছে যে ছিদ্রযুক্ত টেপটি একবারে একটি পদে 8 বিট ধারণ করেছিল)। আসলে, আসল এএসসিআইআই স্কিমটি 7 টি বিট ব্যবহার করে প্রেরণ করা যেতে পারে, আটটি প্যারিটি চেকের জন্য ব্যবহার করা যেতে পারে। পরবর্তী উন্নয়নগুলি বেশ কয়েকটি উচ্চারণকৃত, গাণিতিক এবং টার্মিনাল অক্ষর অন্তর্ভুক্ত করতে মূল ASCII স্কিমটি প্রসারিত করে।

বিশ্বজুড়ে কম্পিউটারের ব্যবহার সাম্প্রতিক বৃদ্ধি পাওয়ায় বিভিন্ন ভাষা থেকে আরও বেশি সংখ্যক লোকের একটি কম্পিউটারে অ্যাক্সেস ছিল। এর অর্থ হ'ল, প্রতিটি ভাষার জন্য নতুন এনকোডিং স্কিমগুলি অন্যান্য স্কিম থেকে স্বতন্ত্রভাবে বিকাশ করতে হয়েছিল, যা বিভিন্ন ভাষা টার্মিনাল থেকে পড়লে বিরোধ হবে।

ইউনিকোড বিভিন্ন টার্মিনালগুলির অস্তিত্বের সমাধান হিসাবে এসেছিল, সম্ভাব্য অর্থবোধক সমস্ত অক্ষরকে একক বিমূর্ত অক্ষরের অক্ষরে মার্জ করে।

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

মতামত হিসাবে বলা হয়েছে, 'একটি' চরিত্রটি একটি একক বাইট দখল করে এবং 'ա' দুটি বাইট দখল করে, এটি ইউটিএফ -8 এনকোডিংকে বোঝায়। আপনার প্রশ্নের অতিরিক্ত বাইটটি শেষ দিকে একটি নতুন লাইন চরিত্রের অস্তিত্বের কারণে হয়েছিল (যা ওপি জানতে পেরেছিল)।


26
কোনও সাধারণ এনকোডিং বা ফাইল ফর্ম্যাটে ফাইলের শেষের কোড করার কোনও শেষ বাইট নেই। কোনও প্রোগ্রাম যখন কোনও ফাইল পড়ে, তখন ফাইলের শেষটি ওএস দ্বারা একটি বিশেষ উপায়ে সংকেত দেওয়া যেতে পারে তবে এটি একটি আলাদা সমস্যা।
জুক্কা কে। কোরপেলা

2
ইউনিকোডের ইউটিএফ -8 সংস্করণে ա চরিত্রটি 2 বাইট (0xD5A1); অতিরিক্ত অক্ষর (যা হয় তা) উভয় ফাইলে উপস্থিত রয়েছে। ম্যারাথন-
ড্যান নীলি

6
@ খাজভাহ যদি আপনি echo 'ա' > file.txtএটি ব্যবহার করেন বা কিছু সম্পাদক ব্যবহার করে ফাইলটি সম্পাদনা করেন তবে তারা স্বয়ংক্রিয়ভাবে এর পরে একটি নতুন লাইন যুক্ত করে। আপনি যদি চালনা করেন xxd file.txtতবে শেষ বাইটটি সম্ভবত একটি 0a, বা লাইন ফিড হবে।
ড্যানিয়েল অঙ্গুলিনির্দেশ

7
@DoktoroReichard: দয়া করে উত্তর নির্মল যে ইউনিকোড হয় না এনকোডিং; বরং এটি একটি বিমূর্ত অক্ষর সেট এবং ইউটিএফ -16 এবং ইউটিএফ -8 হ'ল ইউনিকোড কোডপয়েন্টগুলির এনকোডিং। আপনার উত্তরের শেষ অনুচ্ছেদগুলি বেশিরভাগ ইউটিএফ -8 সম্পর্কে কথা বলে। তবে যদি কোনও ফাইল ইউটিএফ -16 ব্যবহার করে তবে যে কোনও কোডপয়েন্ট, এমনকি এটির জন্য a, দুটি বাইট ব্যবহার করবে (বা দুটিটির একাধিক)।
মাধ্যাকর্ষণ

6
এটি সম্ভবত জোর দেওয়াও উচিত যে "বর্ধিত ASCII" চরিত্রের সেটগুলি আসলে ASCII নয় এবং অষ্টম বিটটি ব্যবহারের বিভিন্ন উপায়ে সংখ্যাটি এটিকে একটি বিরাট গোলযোগ সৃষ্টি করে। পরিবর্তে কেবল ইউটিএফ -8 ব্যবহার করুন।
ntoskrnl

17

1 বাইটটি 8 বিট হয় এবং এভাবে 256 (2 ^ 8) পর্যন্ত বিভিন্ন মান উপস্থাপন করতে পারে।

এর চেয়ে আরও বেশি সম্ভাবনার প্রয়োজন असलेल्या ভাষার জন্য একটি সাধারণ 1 থেকে 1 ম্যাপিং বজায় রাখা যায় না, তাই একটি অক্ষর সংরক্ষণ করার জন্য আরও ডেটা প্রয়োজন।

নোট করুন যে সাধারণত, বেশিরভাগ এনকোডিংগুলি ASCII অক্ষরের জন্য প্রথম 7 বিট (128 মান) ব্যবহার করে । এটি অষ্টম বিট বা আরও অক্ষরের জন্য আরও 128 মান রেখে যায়। । । উচ্চারণযুক্ত অক্ষর, এশিয়ান ভাষা, সিরিলিক ইত্যাদি যোগ করুন এবং আপনি সহজেই দেখতে পাবেন যে সমস্ত অক্ষর রাখার জন্য 1 বাইট কেন পর্যাপ্ত নয়।


সুতরাং কেন কেবলমাত্র আরও জায়গা ব্যবহার করা হয় তা ব্যাখ্যা করার জন্য এখানে কেবলমাত্র উত্তর দেওয়া হয়েছে
ফলিক্স গাগনন-গ্রেনিয়ার

10

ইউটিএফ -8 এ, এএসসিআইআই অক্ষরগুলি একটি বাইট ব্যবহার করে, অন্যান্য অক্ষর দুটি, তিন বা চারটি বাইট ব্যবহার করে।


1
এটি কেন আপনি বিশদভাবে বলতে পারেন? দুটি এনকোডিং পদ্ধতি লক্ষ্য করে প্রশ্নের যথেষ্ট উত্তর হয় না।
ম্যাক্লিওড

@ ম্যাক্লিওড ইউনিকোডকে ASCII প্রতিস্থাপনের জন্য তৈরি করা হয়েছিল। পিছনের সামঞ্জস্যের জন্য, প্রথম 128 টি অক্ষর একই। এই 128 টি অক্ষর এক বাইট দিয়ে প্রকাশ করা যেতে পারে। অতিরিক্ত অক্ষরের জন্য অতিরিক্ত বাইট যুক্ত করা হয়।
জেসন

আমি সচেতন, কিন্তু এটি ASCII চরিত্রগুলিকে কী আলাদা করে তোলে তা প্রশ্নের উত্তরের অংশ। এটি ওপিকে ব্যাখ্যা করা উচিত।
ম্যাক্লিওড

@ ম্যাক্লেওড এটিও বলা যেতে পারে যে ইউনিকোড কনসোর্টিয়ামটি বেশিরভাগ আমেরিকান কর্পোরেশন দ্বারা গঠিত এবং ইংরেজি ভাষার চরিত্রগুলির প্রতি পক্ষপাতদুষ্ট ছিল। আমি ভেবেছিলাম একটি সাধারণ উত্তর একটি বিষয়গত উত্তর চেয়ে ভাল than
জেসন

15
ইউটিএফ 8-তে "ইউনিকোডে" নয় - এটি ইউনিকোড অক্ষর সেটটির বেশ কয়েকটি এনকোডিংগুলির মধ্যে একটি।
সেবাস্তিয়ান নেগ্রাসজাস

3

কোনও চরিত্রের জন্য প্রয়োজনীয় বাইটের পরিমাণ (যা প্রশ্নটি আপাতদৃষ্টিতে সম্পর্কিত) অক্ষর এনকোডিংয়ের উপর নির্ভর করে। আপনি যদি আর্মএসসিআইআই এনকোডিং ব্যবহার করেন তবে প্রতিটি আর্মেনিয়ান অক্ষর কেবল একটি বাইট দখল করে। যদিও আজকাল এটি ভাল পছন্দ নয়।

ইউনিকোডের জন্য ইউটিএফ -8 স্থানান্তর এনকোডিংয়ে, অক্ষরগুলির জন্য পৃথক সংখ্যক বাইট প্রয়োজন need এতে "ক" কেবল একটি বাইট নেয় (দুটি বাইট সম্পর্কে ধারণাটি এক ধরণের বিভ্রান্তি), "á" দুটি বাইট নেয় এবং আর্মেনিয়ান অক্ষর আইয়ব "ա" দুটি বাইটও গ্রহণ করে। তিন বাইট অবশ্যই এক ধরণের বিভ্রান্তি হতে হবে। বিপরীতে, উদাহরণস্বরূপ, বাংলা অক্ষর একটি "অ" ইউটিএফ -8 এ তিন বাইট নেয়।

পটভূমিটি হ'ল ইউটিএফ -8 এসকি চরিত্রগুলির জন্য খুব দক্ষ, ইউরোপ এবং আশেপাশের অঞ্চলে সিস্টেম লেখার পক্ষে মোটামুটি দক্ষতার জন্য ডিজাইন করা হয়েছিল এবং বাকি সমস্তগুলিই কম দক্ষ। এর অর্থ হ'ল বেসিক ল্যাটিন অক্ষর (যা ইংরেজি পাঠ্য বেশিরভাগটি নিয়ে থাকে), একটি চরিত্রের জন্য কেবল একটি বাইট প্রয়োজন; গ্রীক, সিরিলিক, আর্মেনিয়ান এবং আরও কয়েকজনের জন্য দুটি বাইটের প্রয়োজন; বাকি সব আরও প্রয়োজন।

ইউটিএফ -8 (যেমন একটি মন্তব্যে দেখানো হয়েছে) এছাড়াও দরকারী সম্পত্তি যা আসকি ডেটা (যখন 8-বিট ইউনিট হিসাবে উপস্থাপিত হয়, যা প্রায় দীর্ঘ সময়ের জন্য প্রায় একমাত্র উপায় ছিল) খুব তুচ্ছ UTF-8 এনকোডযুক্তও রয়েছে।


উত্তরের জন্য ধন্যবাদ. অতিরিক্ত বাইটগুলি হ'ল কারণ আমি যে প্রোগ্রামটি ব্যবহার করেছি সেগুলি স্বয়ংক্রিয়ভাবে শেষ পর্যন্ত নতুন লাইন চরিত্র যুক্ত করেছে।
খাজওয়াহ

1
আমি মনে করি না ইউটিএফ -8 এএসসিআইআই ডেটার সাথে সামঞ্জস্যতার জন্য দক্ষতার জন্য এতটা নকশা করা হয়েছিল । ইউটিএফ -8 এর খুব সুন্দর সম্পত্তি রয়েছে যে--বিট এএসসিআইআই সামগ্রী (উচ্চ বিটটি শূন্যে সেট করা সহ) ইউটিএফ -8 হিসাবে এনকোডযুক্ত একই সামগ্রীর সাথে সমান, তাই সাধারনত ASCII এর সাথে ডিল করে এমন সরঞ্জামগুলির জন্য, এটি একটি ড্রপ-ইন প্রতিস্থাপন । আমার জ্ঞান অনুসারে অন্য কোনও ইউনিকোড এনকোডিং স্কিমের সেই সম্পত্তি নেই। ইউটিএফ -8 বেশিরভাগ ডেটার জন্যও যুক্তিসঙ্গতভাবে কমপ্যাক্ট, বিশেষত যদি আপনি ইউনিকোড বিএমপির ক্ষেত্রের মধ্যে থাকেন
একটি সিভিএন

1
@ মাইকেলKjörling, আমি সেই বৈশিষ্ট্যটির একটি উল্লেখ উল্লেখ করেছি। তবে, প্রথম দিনগুলিতে ইউনিকোডের একটি বড় আপত্তি ছিল অদক্ষতা এবং ইউটিএফ -16 ডেটা আকারের দ্বিগুণ করে যা প্রভাবশালী আসকি is ইউটিএফ -8 এর অর্থ, উদাহরণস্বরূপ ইংরাজির পাঠ্যের জন্য, যে আপনি ব্যবহার করেন না এমন অসিচি অক্ষরের জন্য কেবলমাত্র "অর্থ প্রদান"।
জুক্কা কে। করপেলা

3

1960 এর দশকের অক্ষর কোডগুলি (এবং এর বাইরেও) মেশিন-নির্দিষ্ট ছিল। 1980 এর দশকে আমি সংক্ষেপে একটি ডিসি 2020 মেশিন ব্যবহার করেছি, যার 36 বিট শব্দ ছিল এবং 5, 6 এবং 8 ( অক্ষর এনকোডিংগুলিতে প্রতি আইআইআরসি ) বিট ছিল। তার আগে, আমি ইবিসিডিকের সাথে একটি আইবিএম 370 সিরিজ ব্যবহার করেছি। C টি বিট সহ এএসসিআইআই অর্ডার এনেছে, তবে এটি আইবিএম পিসি "কোডপেজ" এর সাথে অতিরিক্ত 8 টি বিট ব্যবহার করে, যেমন আদিম মেনুগুলি আঁকার জন্য সমস্ত ধরণের বক্স অঙ্কন করে, এবং পরে ল্যাটিন -1 (8 বিট) এর মতো এএসসিআইআই এক্সটেনশনগুলির সাথে জগাখিচুড়ি হয়েছে " এনকোডিং, প্রথম 7 বিট ASCII এবং "জাতীয় অক্ষর" মত জন্য বাকী অর্ধেক মতো ñ, Çঅথবা অন্যদের। সম্ভবত সবচেয়ে জনপ্রিয় ল্যাটিন -1 ছিল, ল্যাটিন অক্ষর ব্যবহার করে ইংরেজি এবং সবচেয়ে ইউরোপীয় ভাষা মতন (এবং কথা এবং রূপগুলো)।

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

আজ আমরা ইউনিকোড ব্যবহার করি, যা ইউটিএফ -8 এর মতো দক্ষ এনকোডিংগুলিতে কাপল যা ইংরেজী অক্ষরকে পছন্দ করে (আশ্চর্যরূপে, ইংরেজি অক্ষরের এনকোডিং ঠিক তেমনই ASCII এর সাথে মিলে যায়) ফলে বহু অ-ইংলিশ অক্ষর দীর্ঘতর এনকোডিং ব্যবহার করে।


2

উইন্ডোজ 8.1 ইউএস / ইংলিশ ফাইল একক 'এ' দিয়ে নোটপ্যাডের সাহায্যে সংরক্ষিত হয়েছে।

  • এএনএসআই 1 বাইট হিসাবে সংরক্ষণ করুন
  • ইউনিকোড এএস 4 বাইট সংরক্ষণ করুন
  • ইউটিএফ -8 4 বাইট হিসাবে সংরক্ষণ করুন

নোটপ্যাডের সাহায্যে একক 'ա' ফাইল সংরক্ষণ করা হয়েছে

  • এএনএসআই হিসাবে সংরক্ষণ করুন সম্ভব নয়
  • ইউনিকোড এএস 4 বাইট সংরক্ষণ করুন
  • ইউটিএফ -8 5 বাইট হিসাবে সংরক্ষণ করুন

এএনএসআই-তে একটি সিঙ্গেল 'এ' একক বাইট হিসাবে এনকোড করা হয়, ইউনিকোডে প্রতিটি অক্ষর সাধারণত 2 বাইট হয় ফাইলের শুরুতে একটি 2 বাইট বিওএম (বাইট অর্ডার মার্কার) থাকে। ইউটিএফ -8 এ একটি 3 বাইট বিওএম এবং একক বাইট অক্ষর রয়েছে।

'Ա' এর জন্য এএনএসআই চরিত্রের সেটটিতে সেই চরিত্রটি বিদ্যমান নেই এবং আমার মেশিনে সংরক্ষণ করা যায় না। ইউনিকোড ফাইলটি আগের মতোই এবং ইউটিএফ -8 ফাইলটি 1 বাইট বড় হওয়ায় চরিত্রটি 2 বাইট নেয়।

যদি আপনার মেশিনটি আলাদা অঞ্চল থেকে থাকে তবে আপনার একটি আলাদা OEM কোড পৃষ্ঠা ইনস্টল থাকতে পারে যা ASCII ব্যাপ্তিতে সম্ভব 255 টি অক্ষরের জন্য বিভিন্ন গ্লাইফ রয়েছে। যেমন @ntoskrnl উল্লেখ করেছে যে আমার মেশিনের জন্য OEM কোডপেজটি উইন্ডোজ -১২২২ হবে যা ইউএস ইংলিশের জন্য ডিফল্ট।


4
নোটপ্যাড (এবং সাধারণভাবে উইন্ডোজ) এখানে বিভ্রান্তিকর পরিভাষা ব্যবহার করে। "এএনএসআই" হ'ল স্থানীয়-নির্ভর একক বাইট এনকোডিং (ইংরাজী সংস্করণে উইন্ডোজ -১২২২), এবং "ইউনিকোড" ইউটিএফ -১ 16।
ntoskrnl

@ntoskrnl এটি সঠিক, তবে আপনি যদি এনকোডিংয়ের জন্য ড্রপ বাক্সে সন্ধান করছেন তবে এএনএসআই বলছে, এ কারণেই আমি উল্লেখ করেছি যে আপনার যদি অন্য ই এম কোডেপেজ থাকে তবে আপনি বিভিন্ন ফলাফল পেতে পারেন।
ড্যারিল ব্রাটেন

2

আপনি যদি অক্ষরগুলি কীভাবে সংরক্ষণ করা হয় সে সম্পর্কে আগ্রহী হন তবে আপনি www.unicode.org এ গিয়ে আশেপাশে দেখতে পারেন। তাদের প্রধান পৃষ্ঠার শীর্ষে একটি লিঙ্ক "কোড চার্ট" রয়েছে যা আপনাকে ইউনিকোডে উপলব্ধ সমস্ত অক্ষর কোডগুলি দেখায়।

সব মিলিয়ে ইউনিকোডে কিছু মিলিয়নেরও বেশি কোড উপলব্ধ রয়েছে (তাদের সবকটিই ব্যবহৃত হয় না)। একটি বাইট 256 টি বিভিন্ন মান ধরে রাখতে পারে, তাই আপনি যদি প্রতিটি সম্ভাব্য ইউনিকোড কোড সঞ্চয় করতে চান তবে আপনার কাছে তিনটি বাইটের প্রয়োজন হবে।

পরিবর্তে, ইউনিকোড সাধারণত "ইউটিএফ -8" এনকোডিংয়ে সংরক্ষণ করা হয় যা কিছু অক্ষরের জন্য কম বাইট ব্যবহার করে এবং অন্যদের জন্য আরও কিছু ব্যবহার করে। প্রথম 128 কোড মানগুলি একটি বাইটে সংরক্ষণ করা হয়, প্রথম 2048 কোডের মান দুটি বাইটে সংরক্ষণ করা হয়, 65536 অবধি তিনটি বাইটে সংরক্ষণ করা হয় এবং বাকী চারটি বাইট নেয় take এটি এমনভাবে সাজানো হয়েছে যাতে কোড মানগুলি যেগুলি প্রায়শই ব্যবহৃত হয় সেগুলি কম স্থান নেয়। এজেড, এজেড, ০-৯ এবং! @ $% ^ & * () - [} {}; ': "|, </ <>? এবং কিছু যে আমি একটি বাইট নিতে ভুলে গেছি; প্রায় সমস্ত ইংরেজী, 98% এর জার্মান এবং ফরাসি (কেবল অনুমান করা) প্রতিটি চরিত্রের জন্য একটি বাইটে সংরক্ষণ করা যেতে পারে, এবং এগুলি এমন অক্ষর যা সর্বাধিক ব্যবহৃত হয়। সিরিলিক, গ্রীক, হিব্রু, আরবি এবং আরও কিছু অক্ষর প্রতি দুটি বাইট ব্যবহার করে Indian ভারতীয় ভাষা, বেশিরভাগ চীনা, জাপানি , কোরিয়ান, থাই, অগণিত গাণিতিক চিহ্ন, অক্ষর প্রতি তিন বাইটে লেখা যেতে পারে। বিরল জিনিস (আপনি যদি কখনও লিনিয়ার এ বা লিনিয়ার বি, ইমোজিগুলিতে লেখা লিখতে চান) চারটি বাইট নিন take

অন্য এনকোডিংটি ইউটিএফ -16। ইউটিএফ -8 এ 1, 2 বা 3 বাইট লাগে এমন সমস্ত কিছু ইউটিএফ -16 এ দুটি বাইট নেয়। এর মধ্যে যদি আপনার খুব কম ল্যাটিন অক্ষরযুক্ত চীনা বা জাপানি পাঠ্য থাকে তবে এটি একটি সুবিধা।

ইউটিএফ -8 ডিজাইনের কারণ সম্পর্কে: অন্যান্য ডিজাইনের তুলনায় এর বেশ কয়েকটি সুবিধা রয়েছে। তারা হ'ল:

US-ASCII অক্ষরের সাথে সামঞ্জস্য

যুক্তিসঙ্গত কমপ্যাক্টনেস

স্ব-সিঙ্ক্রোনাইজেশন: এর অর্থ হ'ল আপনাকে যদি ইউটিএফ -8 এনকোডিংয়ের অক্ষরগুলি বাইটগুলির ক্রমের অংশ দেওয়া হয় তবে আপনি কোথায় অক্ষর শুরু হয় তা সন্ধান করতে পারেন। কিছু এনকোডিংগুলিতে, xy এবং yx উভয় অক্ষরের বৈধ এনকোডিং হতে পারে, সুতরাং যদি আপনাকে কোনও অনুক্রমের অংশ দেওয়া হয় ... xyxyxyxyxyxy ... আপনি কী অক্ষরগুলি বুঝতে পারবেন না।

যথাযথতা বাছাই: আপনি যদি ইউটিএফ -8 এনকোডেড অক্ষরগুলি সহ তাদের বাইট মান অনুসারে বাছাই করেন তবে সেগুলি স্বয়ংক্রিয়ভাবে তাদের ইউনিকোড মান অনুসারে বাছাই করা হবে।

একক বাইট কোডের সাথে সামঞ্জস্যপূর্ণ: বেশিরভাগ কোড যা একক বাইট মান ধরে নেয় ইউটিএফ -8 এনকোডেড অক্ষরগুলির সাথে স্বয়ংক্রিয়ভাবে সঠিকভাবে কাজ করে।

প্লাস যাই হোক না কেন কারণ আমি ভুলে গেছি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.