কারণ এমএস এসকিউএল সার্ভারের অন্যান্য আরডিবিএমএসের তুলনায় ইউটিএফ -8 এর জন্য খুব কম সমর্থন রয়েছে।
এমএস এসকিউএল সার্ভার কনভেনশনটি অনুসরণ করে, উইন্ডোজের মধ্যেই ব্যবহৃত হয় যে "সরু" স্ট্রিংগুলি ( char
সি ++ CHAR
বা VARCHAR
এসকিউএল মধ্যে) একটি উত্তরাধিকার "কোড পৃষ্ঠা" এ এনকোড করা হয়। কোড পৃষ্ঠাগুলি নিয়ে সমস্যাটি হ'ল তাদের সীমিত সংখ্যক অক্ষর রয়েছে (বেশিরভাগ একক-বাইট এনকোডিংগুলি, যা প্রতিবেদককে 256 টি অক্ষরে সীমাবদ্ধ করে) এবং একটি একক ভাষার (বা একই বর্ণমালা সহ ভাষার একটি গ্রুপ) চারপাশে ডিজাইন করা হয়েছে। এটি বহুভাষিক ডেটা সংরক্ষণ করা কঠিন করে তোলে। উদাহরণস্বরূপ, আপনি রাশিয়ান এবং হিব্রু উভয় ডেটা সংরক্ষণ করতে পারবেন না কারণ রাশিয়ান কোড পৃষ্ঠা 1251 ব্যবহার করে এবং হিব্রু কোড পৃষ্ঠা 1255 ব্যবহার করে ।
ইউনিকোড এক মিলিয়নেরও বেশি অক্ষরের জন্য একক দৈত্য কোডড অক্ষর সেট ব্যবহার করে এই সমস্যাটি সমাধান করে, যা বিশ্বের প্রতিটি ভাষার প্রতিনিধিত্ব করতে যথেষ্ট। বেশ কয়েকটি ইউনিকোড এনকোডিং স্কিম রয়েছে; মাইক্রোসফট ব্যবহার করতে পছন্দ করে হল UTF-16 , জন্য ঐতিহাসিক কারণে । যেহেতু ইউটিএফ -16 স্ট্রিংগুলি প্রথাগত 8-বিটের পরিবর্তে 16-বিট কোড ইউনিটের ক্রম হিসাবে উপস্থাপন করে, একটি পৃথক অক্ষর প্রকারের প্রয়োজন। এমএসভিসি ++ এ, এটি wchar_t
। এবং এমএস এসকিউএল এ, এটি NCHAR
বা NVARCHAR
। N
"জাতীয়" এর অর্থ দাঁড়ায় যা আমার কাছে পিছনে বলে মনে হয় কারণ ইউনিকোড আন্তঃরাষ্ট্রীয়করণ সম্পর্কে , তবে এটি আইএসও পরিভাষা।
অন্যান্য এসকিউএল বাস্তবায়ন আপনাকে কলামে ইউটিএফ -8 পাঠ্য সংরক্ষণ করতে দেয় VARCHAR
। ইউটিএফ -8 হ'ল একটি পরিবর্তনশীল দৈর্ঘ্য (অক্ষর অনুসারে 1-4 বাইট) এনকোডিং যা আপনার ডেটা বেশিরভাগ বেসিক ল্যাটিন পরিসরে থাকে (যা এএসসিআইআই হিসাবে অক্ষর হিসাবে একই 1 বাইট হিসাবে উপস্থাপিত হয়) ক্ষেত্রে ক্ষেত্রে উপযুক্ত হয় তবে প্রতিনিধিত্ব করতে পারে যে কোনও ইউনিকোড অক্ষর। সুতরাং, আপনি bwalk2895 দ্বারা উল্লিখিত "দ্বিগুণ স্থান" সমস্যা এড়াতে চাইবেন।
দুর্ভাগ্যক্রমে, এমএস এসকিউএল সার্ভার ইউটিএফ -8 সমর্থন করে নাVARCHAR
, সুতরাং পরিবর্তে আপনাকে ইউটিএফ -16 ব্যবহার করতে হবে (এবং এএসসিআইআই পাঠ্যের জন্য স্থান নষ্ট করতে হবে), নন-ইউনিকোড কোড পৃষ্ঠা ব্যবহার করতে হবে (এবং বিদেশী অক্ষরের প্রতিনিধিত্ব করার ক্ষমতা হারাতে হবে), বা ইউটিএফ -8 একটি BINARY
কলামে সঞ্চয় করুন (এবং এসকিউএল স্ট্রিং ফাংশনগুলি সঠিকভাবে কাজ করছে না বা আপনার জিইউআই ডিবি ব্যবস্থাপকটিতে হেক্স ডাম্প হিসাবে ডেটাটি দেখার মতো অসুবিধাগুলি মোকাবেলা করুন )।