এসকিউএল সার্ভার 2005/2008 ইউটিএফ -8 কোলেশন / চারসেট


16

অন্য এসকিউএল ইঞ্জিনে সেট করা সম্ভব হিসাবে একইভাবে এসকিউএল সার্ভার UTF-8২০০৫/২০০৮ Collations/Charsetsএ রিলেলেটেড সেট করার জন্য আমি বিকল্প (গুলি) খুঁজে পাচ্ছি না, তবে এসকিউএল সার্ভার ২০০৫/২০০৮ এ কেবল লাতিন এবং এসকিউএল কোলেশন রয়েছে।

উইন ২০০৮ ওএস-তে এসকিউএল সার্ভার ইঞ্জিনে (উভয় ভার্জিকের জন্য) 2005/2008 এই জঙ্গিগুলি / চার্সেটগুলি জোর করে / ইনস্টল করার কিছু বিকল্প আছে কি না?

উত্তর:


13

না, নেই। এসকিউএল সার্ভার ইউটিএফ -8 সমর্থন করে না।

আপনি যদি ইউনিকোড ডেটা চান তবে আপনার কলামগুলি nvarchar / nchar হিসাবে সংজ্ঞায়িত করতে হবে। দ্রষ্টব্য, অভ্যন্তরীণভাবে এসকিউএল সার্ভার এটি ইউসিএস -২ হিসাবে সঞ্চয় করে।

নোট করুন যে এটি এমএস থেকে কানেক্টে অনুরোধ করেছে এবং একটি পুরানো কেবি নিবন্ধ রয়েছে । এবং এই ব্লগে কিছু তথ্য


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

এসকিউএল সার্ভারের সাম্প্রতিক প্রকাশে কি এই আচরণটি পরিবর্তন হয়েছে?
সেয়ারিয়া

@ সিয়েরিয়া: না, একই আচরণ
gbn

যে কেউ এই উত্তরের পথ খুঁজে পান, দয়া করে এমএস কানেক্ট পৃষ্ঠায় যান এবং এমএস এসকিউএল সার্ভারে ইউটিএফ -8 সমর্থন করে এমন ভোট দিন। ধন্যবাদ: ডি
ডারসি থমাস

@ ডারসিথোমাস এটি এসকিউএল সার্ভার 2019-এ বাস্তবে পরিণত হচ্ছে, যদিও এটির স্পষ্টর প্রয়োজন না থাকলে এটি ব্যবহার করা উচিত not বিস্তারিত জানার জন্য আমার উত্তর দেখুন।
সলোমন রুটজকি

2

আপনি অক্ষর সেট হিসাবে ইউটিএফ -8 ইনস্টল করতে পারবেন না কারণ এটি কোনও অক্ষর সেট নয়, এটি একটি এনকোডিং।

আপনি যদি ইউনিকোড পাঠ্য সংরক্ষণ করতে চান তবে আপনি nvarcharডেটা টাইপ ব্যবহার করেন ।

আপনি যদি ইউটিএফ -8 ব্যবহার করে এনকোডযুক্ত পাঠ্য সংরক্ষণ করতে চান তবে আপনি এটি বাইনারি ডেটা ( varbinary) হিসাবে সঞ্চয় করেন ।


1

এসকিউএল সার্ভার 2019 থেকে শুরু করে (বর্তমানে বিটা / "কমিউনিটি টেক প্রিভিউ"), ইউটিএফ -8 এর জন্য ইউটিএফ -8 কোলিশনের একটি নতুন সিরিজের মাধ্যমে স্থানীয় সমর্থন রয়েছে। যাইহোক, ইউটিএফ -8 ব্যবহার করার ক্ষমতা থাকার অর্থ এই নয় যে আপনার উচিত। ইউটিএফ -8 ব্যবহারের ক্ষেত্রে নির্দিষ্ট ত্রুটি রয়েছে যেমন:

  1. কেবলমাত্র প্রথম 128 কোড পয়েন্টগুলি 1 বাইট (অর্থাত্ স্ট্যান্ডার্ড 7-বিট ASCII সেট)
  2. পরবর্তী প্রায় 2000 কোড পয়েন্ট 2 বাইট, তাই ইউটিএফ -16 / এর চেয়ে কোনও স্থানের সঞ্চয় নেই no NVARCHAR
  3. বিএমপি-র অবশিষ্ট 63৩ কে কোড পয়েন্টগুলি (যেমন ইউ + 0800 - ইউ + এফএফএফএফ পরিসীমা) সমস্ত 3 বাইট, সুতরাং ইউটিএফ -16 / এর একই বর্ণের চেয়ে 1 বাইট বেশিNVARCHAR
  4. এটি কেবল বলেছে: পরিপূরক অক্ষরগুলি উভয় এনকোডিংয়ে 4 বাইট হয়, সুতরাং সেখানে কোনও স্থানের পার্থক্য নেই
  5. আপনি ইউটিএফ -8 ব্যবহার করে স্থান সাশ্রয় করতে পারেন, এমন একটি খুব ভাল সম্ভাবনা রয়েছে যা করার জন্য আপনি পারফরম্যান্সের উপর চাপ ফেলবেন।

এটি আসলে কী নেমে আসে তা হ'ল: ইউটিএফ -8 হ'ল 8-বিট সিস্টেমগুলিকে সক্ষম করার জন্য স্টোরেজ বিন্যাসের নকশা (যা সাধারণত এএসসিআইআই এবং এএসসিআইআই এক্সটেন্ডেড - কোড পৃষ্ঠাগুলি) ইউনিকোড ব্যবহার করার জন্য কোনও কিছু না ভেঙে বা বিদ্যমান কোনও পরিবর্তন প্রয়োজন না করেই সক্ষম করা হয়েছিল জিনিস চলমান রাখতে ফাইল। হল UTF-8 ফাইল সিস্টেম এবং নেটওয়ার্কিং জন্য বিস্ময়কর, কিন্তু সংরক্ষিত ডেটা ভিতরে SQL সার্ভার তন্ন তন্ন হয়। সত্য যে স্ট্যান্ডার্ড ASCII সীমার মধ্যে সর্বাধিক (বা পুরোপুরি) হয়ে ওঠার জন্য ইউটিএফ -16 / হিসাবে সংরক্ষণ করা হয় তখন একই ডেটার চেয়ে কম স্থানের প্রয়োজন NVARCHARহয় a এটি একটি পার্শ্ব-প্রতিক্রিয়া। অবশ্যই, এটি একটি পার্শ্ব-প্রতিক্রিয়া যা কার্যকর প্রমাণ করতে পারে, তবে সেই সিদ্ধান্তটি এমন কোনও ব্যক্তির দ্বারা নেওয়া উচিত যা এই সিদ্ধান্তের ডেটা এবং ফলাফল / অপূর্ণতা উভয়ই বোঝে । এইসাধারণ ব্যবহারের জন্য কোনও বৈশিষ্ট্য নয়

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

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

সম্পূর্ণ বিশদ জন্য, আমার পোস্ট দেখুন:

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


0

আমি আমার ক্ষেত্রে, আমাকে আরবি অক্ষর প্রদর্শন করতে হয়েছিল এবং আমার বিকাশ ডাটাবেস ছিল ২০১৪ সালে, এখানে জিনিসগুলি ভালভাবে কাজ করেছে। এখানে, ক্যোয়ারিতে আমি আরবি অক্ষর দেখতে পেলাম এবং আমার জোটটি এসকিউএল_ল্যাটিন 1_ জেনারাল_সিপি 1256_CI_AS ছিল

তবে আমার প্রযোজনাটি এসকিউএল সার্ভার ২০০৮ এ ছিল এবং শেষ পর্যন্ত এটি ইউটিএফ -৮ চারসেটকে সমর্থন করে না। এখানে, আমি সব দেখতে পেলাম ???????????? ইউটিএফ -8 এসকিউএল 2008 তে সমর্থিত নয়।

আমি যা করেছি তা হ'ল সমস্ত বার্চরকে এনভারচারে পরিবর্তন করা হয়েছে এবং আমি আরবি চরটি সঠিকভাবে দেখতে পেতাম। এছাড়াও আমি আমার ২০০৮ ডাটাবেস কোলেশনকে এসকিউএল_ল্যাটিন 1_ জেনারাল_সিপি 1256_CI_AS এ পরিবর্তন করেছি

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