কেন ভারার ডেটাটাইপ ইউনিকোড মানকে অনুমতি দেয়?


17

আমার কাছে একটি ভার্চর কলাম সহ একটি টেবিল রয়েছে। এটি নীচে প্রদর্শিত হিসাবে ট্রেডমার্ক (™), কপিরাইট (©) এবং অন্যান্য ইউনিকোড অক্ষরকে অনুমতি দিচ্ছে।

Create table VarcharUnicodeCheck
(
col1 varchar(100)
)

insert into VarcharUnicodeCheck (col1) values ('MyCompany')
insert into VarcharUnicodeCheck (col1) values ('MyCompany™')
insert into VarcharUnicodeCheck (col1) values ('MyCompany░')
insert into VarcharUnicodeCheck (col1) values ('MyCompanyï')
insert into VarcharUnicodeCheck (col1) values ('MyCompany')

select * from VarcharUnicodeCheck

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


12
সমস্ত অক্ষর ইউনিকোড অক্ষর।
মার্টিন স্মিথ

মাইক্রোসফ্ট যখন ইউটিএফ -16 / ইউসিএস -2 বোঝায় তখন প্রায়শই ইউনিকোড ব্যবহার করে। সুতরাং তারা ইউটিএফ -8 গণনাও করতে পারে না কারণ ইউনিকোড কিছু প্রসঙ্গ।
কোডসইনচওস

1
@ কোডসনচাওস: আমি আপনার মন্তব্যের বিশ্লেষণ করতে সংগ্রাম করেছি, তবে আমি উদ্বেগ প্রকাশ করেছি যে আপনি ইউনিকোডকে বিভিন্ন ইউটিএফ-এন এনকোডিংয়ের সাথে বিভ্রান্ত করছেন।
মনিকার সাথে লাইটনেস রেস

1
@ মার্টিন স্মিথ: যদি সমস্ত চরিত্রগুলি ইউনিকোড অক্ষর হয় তবে মাইক্রোসফ্ট ভারচার সংজ্ঞা কেন বলে যে এটি নন-ইউনিকোড স্ট্রিং ডেটার অনুমতি দেয়?
শিব

2
বর্ণের চরিত্রগুলির জন্য এনকোডিংটি ইউনিকোড নয় তবে সমস্ত অক্ষর ইউনিকোডে বিদ্যমান
মার্টিন স্মিথ

উত্তর:


15

তবে ট্রেডমার্ক (™) এবং নিবন্ধিত (®) চিহ্নগুলি ইউনিকোডের অক্ষর।

আপনার এখানে ভুল আছে। আপনার স্ট্রিংয়ে কেবলমাত্র asciiঅক্ষর রয়েছে।

এখানে একটি সহজ পরীক্ষা যা আপনাকে দেখায় যে আপনার অক্ষরগুলি সমস্ত আসকি (+ কিছু extended ascii128 থেকে 255 এর মধ্যে এসকি কোড সহ):

declare @VarcharUnicodeCheck table
(
col1 varchar(100)
)

insert into @VarcharUnicodeCheck (col1) values ('MyCompany')
insert into @VarcharUnicodeCheck (col1) values ('MyCompany™')
insert into @VarcharUnicodeCheck (col1) values ('MyCompany░')
insert into @VarcharUnicodeCheck (col1) values ('MyCompanyï')
insert into @VarcharUnicodeCheck (col1) values ('MyCompany')

select *,
        right(col1, 1)as last_char, 
        ascii(right(col1, 1)) as_last_char_ascii
from @VarcharUnicodeCheck;

এখানে আপনি পরিষ্কার দেখতে পাচ্ছেন যে আপনার সমস্ত অক্ষর 1-বাইট এনকোডযুক্ত:

এখানে চিত্র বর্ণনা লিখুন

হ্যাঁ এগুলি খাঁটি অসি অক্ষর নয় তবে এএসসিআইআই প্রসারিত

এখানে আমি আপনাকে প্রকৃত ইউনিকোড চরিত্র Trademark(™)এবং এর কোড এবং বাইনারি উপস্থাপনা দেখাব :

declare @t table (uni_ch nchar(1), ascii_ch char(1));
insert into @t values (N'™', '™');

select unicode(uni_ch) as [unicode of ™], 
       ascii(ascii_ch) [ascii of ™], 
       cast(uni_ch as varbinary(10)) as [uni_ch as varbinary], 
       cast(ascii_ch as varbinary(10)) as [ascii_ch as varbinary]
from @t;

এখানে চিত্র বর্ণনা লিখুন

অবশেষে, আপনি দেখতে পারেন যে Trademark(™)ইউনিকোডের অক্ষরটির 8482 কোড রয়েছে এবং 153 নয়:

select nchar(8482), nchar(153)

1
তবে আপনি যে নিবন্ধটি উল্লেখ করেছেন তাতে কোনও "এএসসিআইআই" শব্দ নেই, তারা কেবল ইউনিকোড এবং নন-ইউনিকোড চরিত্রের বিষয়ে কথা বলছেন, এবং আপনি যে ট্রেডমার্ক ব্যবহার করেছেন তা ইউনিকোড ছিল না।
sepupic

16
"এক্সটেন্ডেড এএসসিআইআই" একটি মারাত্মক অস্পষ্ট শব্দ। 8-বিট এনকোডিংটি আসলে কী ব্যবহৃত হয় তা দেখার জন্য এটি আরও সহায়ক হবে (এটি কী লোকেল / কোলেশন সেটিংসের উপর ভিত্তি করে?) আমি অনুমান করছি উইন্ডোজ কোড পৃষ্ঠা 1252 , যা প্রকৃতপক্ষে চরিত্র 153. হিসাবে ™ এনকোড করে
IMSoP

2
@ সিপুপিক আমি মনে করি কোডপয়েন্ট এবং এনকোডিংয়ের মধ্যে পার্থক্য সম্পর্কে আপনার আরও পড়তে হবে। উইকিপিডিয়া সাহায্য করতে পারে। "এনকোডিং মানচিত্র (সম্ভবত একটি উপসেট) ইউনিকোড পরিসীমা কোড পয়েন্ট কিছু নির্দিষ্ট আকার সীমার মধ্যে মান ক্রমের জন্য, বলা কোড মান ।" 8482 ™ এর কোডপয়েন্ট, যা উইন্ডোজ -1222 2 x99 (153) হিসাবে ম্যাকরোমানের \ xAA হিসাবে, ইউটিএফ -8 এ \ xE2 \ x84 \ xA2, ইত্যাদি হিসাবে এনকোড করা যেতে পারে
curiousdannii

7
127 এর উপরে 8-বিট অক্ষরের সাথে যত্ন নেওয়া উচিত: 127 এর উপরে প্রতিটি কোড যা ব্যবহার করে তা এনকোডিংয়ের উপর নির্ভর করে পরিবর্তিত হবে যা কোন কোলেশন ব্যবহৃত হয় তার উপর নির্ভর করে পরিবর্তিত হবে। কোডেপেজে 1252 ইউনিকোড 8482 ম্যাপ করা হয়েছে 153 Öep কোডপেজ 850 এ স্পটটি 214 ( ) দ্বারা নেওয়া হয়েছে এবং আইএসও -8859-1 (কখনও কখনও ল্যাটিন 1 নামে পরিচিত) এটি একটি নিয়ন্ত্রণ কোড যার মুদ্রণযোগ্য উপস্থাপনা নেই। আপনি যদি না জানেন তবে আপনি সর্বদা একই কোডপেজটি ব্যবহার করবেন তবে এএনএসআই অক্ষরগুলি (127 বা তার কম) আটকে থাকা বা ইউনিকোড প্রকারগুলি ব্যবহার করা আরও নিরাপদ। কোডপেজ 1252 এসকিউএল সার্ভারে সবচেয়ে সাধারণ তবে সর্বব্যাপী থেকে দূরে far
ডেভিড স্পিলিট

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

7

মন্তব্যগুলি থেকে, আমি সম্মত "বর্ধিত ASCII" সত্যই খারাপ শব্দ যার অর্থ আসলে এমন একটি কোড পৃষ্ঠা যা 128-255 পরিসরে অক্ষর / কোড পয়েন্টগুলি মানচিত্র করে, ASCII দ্বারা নির্ধারিত মান 0-127 কোড পয়েন্টের পরিসীমা ছাড়িয়ে।

এসকিউএল সার্ভার কোলিশের মাধ্যমে অনেক কোড পৃষ্ঠা সমর্থন করে। অন্তর্নিহিত কোলেশন চরিত্রটিকে সমর্থন করে ততক্ষণ নন-এএসসিআইআই অক্ষরগুলি ভার্চারে সংরক্ষণ করা যেতে পারে।

এসকিউএল সার্ভার কোলিশেশন কোড পৃষ্ঠা 1250 বা তার বেশি হলে '™' অক্ষরটি ভারচর / চর কলামগুলিতে সংরক্ষণ করা যেতে পারে। কোয়েরি বেলো এইগুলি তালিকাভুক্ত করবে:

SELECT COLLATIONPROPERTY(name, 'CodePage') AS code_page, name, description
FROM sys.fn_helpcollations()
WHERE COLLATIONPROPERTY(name, 'CodePage') >= 1250
ORDER BY name;

তবে এগুলির কেবল একটি উপসেটই 'character' অক্ষরকে সমর্থন করে যাতে কলামের জোটটি উভয়কে সমর্থন করার জন্য নিম্নলিখিতগুলির মধ্যে একটি হতে হবে:

SELECT COLLATIONPROPERTY(name, 'CodePage') AS code_page, name, description
FROM sys.fn_helpcollations()
WHERE COLLATIONPROPERTY(name, 'CodePage') IN(
    1250
    ,1251
    ,1252
    ,1253
    ,1254
    ,1255
    ,1256
    ,1257
    ,1258
)
ORDER BY name;

4

তবে বর্ণের সংজ্ঞা বলছে, এটি নন-ইউনিকোড স্ট্রিং ডেটার অনুমতি দেয় । তবে ট্রেডমার্ক (™) এবং নিবন্ধিত (®) চিহ্নগুলি ইউনিকোডের অক্ষর । সংজ্ঞাটি কি ভ্যাচার ডেটাটাইপের সংখ্যার বিরোধিতা করে?

অন্য উত্তরগুলি ভুল না হলেও, আমি মনে করি এটি বেস পরিভাষায় একটি বিভ্রান্তি দেখাতে সহায়তা করবে। আমি এই বিভ্রান্তির উদাহরণ হিসাবে প্রশ্ন থেকে উপরের উদ্ধৃতিতে দুটি শব্দকে জোর দিয়েছি। SQL সার্ভার ডকুমেন্টেশন ইউনিকোড এবং অ-ইউনিকোড কথা যখন ডেটা , তারা না নিয়ে কথা অক্ষর । তারা বাইট ক্রমগুলি বলছে যা নির্দিষ্ট অক্ষরের প্রতিনিধিত্ব করে। ইউনিকোড প্রকার (মধ্যে মূল পার্থক্য NCHAR, NVARCHAR, XML, এবং অননুমোদিত / মন্দ NTEXT) এবং অ-ইউনিকোড প্রকার ( CHAR, VARCHAR, এবং অননুমোদিত / মন্দ TEXT) কি ধরনের বাইট ক্রম তারা সংরক্ষণ করতে পারেন।

নন-ইউনিকোড ধরণের কয়েকটি 8-বিট এনকোডিংগুলির মধ্যে একটি সংরক্ষণ করে, যখন ইউনিকোড প্রকারগুলি একক 16-বিট ইউনিকোড এনকোডিং সংরক্ষণ করে: ইউটিএফ -16 লিটল এন্ডিয়ান। অন্যান্য উত্তরে যেমন উল্লেখ করা হয়েছে, কোন অক্ষর 8-বিট / নন-ইউনিকোড এনকোডিংয়ে সংরক্ষণ করা যায় তা কোড পৃষ্ঠার উপর নির্ভর করে যা কোলেশন দ্বারা নির্ধারিত হয়। অন্যরা উল্লেখ করেছেন যে "অক্ষর" এর বাইট মানটি পাওয়া যায় এমন কোড পৃষ্ঠাতে পৃথক হতে পারে, বেশ কয়েকটি ইবিসিডিক কোড পৃষ্ঠাতে (উইন্ডোজ- এর বিভিন্নতা) নিয়ে কাজ করার সময় বাইট মান একই কোড পৃষ্ঠায়ও পরিবর্তিত হতে পারে can 1252), যা কেবলমাত্র প্রবীণদের মধ্যে পাওয়া যায়, এস -কিউএল সার্ভার কোলিশেশনগুলি ব্যবহার করা উচিত নয় (যেমন নামগুলি শুরু হয় SQL_)।

সুতরাং, সংজ্ঞাটি নির্ভুল: আপনি নন-ইউনিকোড টাইপের মধ্যে যে অক্ষরগুলি সংরক্ষণ করতে পারবেন তা সর্বদা 8-বিট হয় (এমনকি যদি তারা একটিমাত্র "চরিত্র" হিসাবে দুটি 8-বিট মান ব্যবহার করে তবে ডাবল- বাইট চরিত্র সেট / ডিবিসিএস কোড পৃষ্ঠাগুলি এর জন্য অনুমতি দেয়)। এবং ইউনিকোড ডেটাটাইপগুলি সর্বদা 16-বিট থাকে, এমনকি যদি তারা কখনও কখনও একক "চরিত্র" হিসাবে অর্থাত্ দুটি 16-বিট মান ব্যবহার করে (অর্থাত্ একটি সারোগেট জুটি যা পরিপূরক চরিত্রের প্রতিনিধিত্ব করে)।

এবং, এসকিউএল সার্ভারের জন্য স্থানীয়ভাবে ইউটিএফ -8 এনকোডিং VARCHARএবং CHARএসকিউএল সার্ভার 2019 হিসাবে ডেটাটাইপগুলি সমর্থন করার কারণে ,

VARCHARআর "নন-ইউনিকোড" হিসাবে উল্লেখ করা যায় না। সুতরাং, সেপ্টেম্বর 2018 এ এসকিউএল সার্ভার 2019 এর প্রথম পাবলিক বিটা দিয়ে শুরু করে, এসকিউএল সার্ভার 2019 এর VARCHARপূর্ববর্তী সংস্করণগুলির ক্ষেত্রে কথা বলার পরেও আমাদের "8-বিট ডেটাটাইপ" হিসাবে উল্লেখ করা উচিত This এই পরিভাষাটি 4 টি ধরণের জন্য সত্য এনকোডিংগুলির সাথে যা ব্যবহার করা যেতে পারে VARCHAR:

  1. বর্ধিত এএসসিআইআই
  2. ডাবল-বাইট চরিত্রের সেটগুলি (ডিবিসিএস)
  3. EBCDIC
  4. ইউটিএফ -8 (ইউনিকোড)

কেবলমাত্র TEXTডেটাটাইপ (এসকিউএল সার্ভার ২০০৫ হিসাবে অবমানিত, সুতরাং এটি ব্যবহার করবেন না) "নন-ইউনিকোড", তবে এটি কেবল একটি প্রযুক্তিগত এবং এটি "8-বিট ডেটাটাইপ" হিসাবে উল্লেখ করা সঠিক।

NVARCHAR, NCHARএবং NTEXT"UTF-16" বা "16-বিট ডেটাটাইপ" হিসাবে উল্লেখ করা যেতে পারে। ওরাকল, আমি বিশ্বাস করি, "ইউনিকোড-কেবল" এর পরিভাষা ব্যবহার করে NVARCHAR, তবে এটি ইউটিএফ -8 (একটি ইউনিকোড এনকোডিং) ব্যবহারের সম্ভাব্যতাও পরিষ্কারভাবে অস্বীকার করে না, যা কার্যকর হবে না, তাই সম্ভবত সবচেয়ে ভাল থেকে আটকে থাকা প্রথম দুটি বিকল্প।

নতুন ইউটিএফ -8 এনকোডিংগুলির বিষয়ে বিশদ জানতে দয়া করে আমার পোস্টটি দেখুন:

এসকিউএল সার্ভার 2019 এ নেটিভ ইউটিএফ -8 সমর্থন: ত্রাণকর্তা বা ভ্রান্ত নবী?

PS আমি এই পরিবর্তনগুলি প্রতিফলিত করতে এসকিউএল সার্ভার ডকুমেন্টেশন আপডেট করার মাধ্যমে ধীরে ধীরে আমার পথে কাজ করছি।

পিপিএস মাইক্রোসফ্ট ইতোমধ্যে ইউটিএফ -8 তথ্য সহ কয়েকটি পৃষ্ঠাগুলি আপডেট করেছে , প্রশ্নটিতে উল্লেখ করা চর এবং বারচর ডকুমেন্টেশন সহ । এটিতে আর "নন-ইউনিকোড" বাক্যাংশ নেই। তবে এটি কেবল একটি এফওয়াইআই; এটি প্রশ্নটি পরিবর্তন করে না কারণ এটি হ'ল ইউনিকোড এনকোডিংগুলি সম্পর্কিত এমন অক্ষরগুলি রয়েছে যা ভুল করে কেবল ইউনিকোড-বলে মনে করা হয়েছিল।


3

প্রশ্নটিতে ইউনিকোড কী তা সম্পর্কে একটি কেন্দ্রীয় ভুল ধারণা রয়েছে। ইউনিকোড অক্ষর সেট, ইউটিএফ -8 এবং ইউটিএফ -16 এর মতো এনকোডিং সহ কম্পিউটারে পাঠ্য উপস্থাপনের একাধিক উপায় এবং যার লক্ষ্য অন্য সমস্ত অক্ষর সেট এবং এনকোডিংগুলি ছাড়িয়ে যাওয়া। যদি "নন-ইউনিকোড ডেটা" বলতে বোঝায় "ইউনিকোডে উপস্থিত অক্ষর নেই", তবে আমি এই উত্তরে যে পাঠ্যটি ব্যবহার করেছি তা এর মধ্যে সংরক্ষণ করা যেত না, কারণ প্রতিদিনের ইংরেজিতে লাতিন বর্ণমালা এবং সাধারণ বিরামচিহ্নগুলির সমস্ত অক্ষর ব্যবহৃত হয় ইউনিকোড অন্তর্ভুক্ত।

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

যেহেতু ইউনিকোডের লক্ষ্য বিশ্বের প্রতিটি চরিত্রের জন্য নম্বর রয়েছে (যাকে এটি "কোড পয়েন্ট" বলে), উইকিপিডিয়ার মতো উল্লেখগুলি প্রায়শই কোনও রেফারেন্স তথ্যের স্ট্যান্ডার্ড অংশ হিসাবে কোনও চরিত্রের ইউনিকোড অবস্থানকে উল্লেখ করে। তবে এর অর্থ এই নয় যে অন্যান্য চরিত্রের সেটগুলিতেও একই চরিত্রটির জন্য ম্যাপিং নেই।

প্রাচীনতম এবং সর্বাধিক সরল অক্ষর সেটগুলির মধ্যে একটি (এবং এনকোডিংগুলি) এখনও ব্যবহৃত হচ্ছে এএসসিআইআই, যার মধ্যে 128 টি আলাদা অক্ষরের (0 থেকে 127) ম্যাপিং রয়েছে কারণ এটি প্রতিটি অক্ষরকে এনকোড করার জন্য 7 বিট ব্যবহার করে। যেহেতু এটি বহু উচ্চারণযুক্ত অক্ষর এবং সাধারণ চিহ্নগুলি বাদ দেয়, পরবর্তীকালে এনকোডিংগুলি 8 টি বিট ব্যবহার করে এবং 128 থেকে 255 পজিশন পূরণ করে বর্ণটি সেট করে একই প্রথম 128 টি অক্ষর তৈরি করে these এর মধ্যে উল্লেখযোগ্য হ'ল স্ট্যান্ডার্ড আইএসও 8859-1 এবং আইএসও 8859- 15 , এবং মাইক্রোসফ্ট-নির্দিষ্ট উইন্ডোজ কোড পৃষ্ঠা 1252

সুতরাং, এমএস এসকিউএল সার্ভারে ফিরে আসার জন্য: ", ইউনিকোড স্ট্রিং", যেমন একটি , বা কলামে সঞ্চিত থাকে nchar, ইউনিকোড অক্ষর সেটে ম্যাপযুক্ত সমস্ত অক্ষরকে উপস্থাপন করতে পারে , কারণ এটি ডেটা সংরক্ষণ করার জন্য একটি ইউনিকোড এনকোডিং ব্যবহার করে। "বা অ-ইউনিকোড স্ট্রিং", যেমন , বা কলামে সঞ্চিত রয়েছে , কেবলমাত্র কিছু অন্যান্য এনকোডিংয়ে ম্যাপযুক্ত অক্ষরকেই উপস্থাপন করতে পারে । আপনি অ-ইউনিকোড কলামে যে কোনও কিছু সঞ্চয় করতে পারেন তা ইউনিকোড কলামেও সংরক্ষণ করা যেতে পারে, তবে বিপরীতে নয়।nvarcharntextcharvarchartext

আপনি কোন অক্ষরগুলি সংরক্ষণ করতে পারবেন তা জানতে, আপনার ব্যবহারের "কোলেশন" জানতে হবে, যা মাইক্রোসফ্টকে "কোড পৃষ্ঠা" হিসাবে মাইক্রোসফ্ট উল্লেখ করে, যা মাইক্রোসফ্টের রেফারেন্স পৃষ্ঠায় ব্যাখ্যা করা হয়েছে । এটি আপনার ক্ষেত্রে সম্ভবত আপনি খুব সাধারণ কোড পৃষ্ঠা 1252 ব্যবহার করছেন যা আমি আগে উল্লেখ করেছি।

আপনার বর্ণিত অক্ষরগুলি ইউনিকোড এবং কোড পৃষ্ঠা 1252 উভয়তেই বিদ্যমান:

  • ট্রেডমার্ক (™) ইউনিকোডে 8482 অবস্থানে এবং সিপি 1252 এ অবস্থান 153 position
  • নিবন্ধিত (®), এটি হ'ল, ইউনিকোড এবং সিপি 1252 উভয় অবস্থান 174-এ উপস্থিত

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

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

3
ভাল, আপনি কেবল নিজের সংজ্ঞা দিয়ে "এনকোডিং" ব্যবহার করতে পারবেন না। এখানে নীটপিক করা হচ্ছে বলে দুঃখিত, তবে আপনি এই উত্তরটি করতে পারবেন না যে "ইউনিকোড কী তা সম্পর্কে একটি প্রশ্নের মধ্যে কেন্দ্রীয় ভুল ধারণা রয়েছে" দিয়ে খোলে এমন কোনও উত্তর দিয়ে ।
পোক করুন

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

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