ইউটিএফ -8 একটি পরিবর্তনশীল দৈর্ঘ্যের এনকোডিং। ইউটিএফ -8 এর ক্ষেত্রে, এর অর্থ একটি কোড পয়েন্ট সংরক্ষণ করার জন্য এক থেকে চারটি বাইট প্রয়োজন। তবে মাইএসকিউএলের এনকোডিংটি "utf8" নামে পরিচিত ("utf8mb3" এর নাম) কেবলমাত্র বিন্দুতে সর্বোচ্চ তিনটি বাইট সঞ্চয় করে।
সুতরাং "utf8" / "utf8mb3" অক্ষর সেটটি সমস্ত ইউনিকোড কোড পয়েন্ট সংরক্ষণ করতে পারে না: এটি কেবল 0x000 থেকে 0xFFFF পরিসীমা সমর্থন করে, যাকে " বেসিক বহুভাষিক সমতল " বলা হয় । ইউনিকোড এনকোডিংগুলির তুলনাও দেখুন ।
মাইএসকিউএল ডকুমেন্টেশনটি সম্পর্কে এটি যা বলে (একই পৃষ্ঠার পূর্ববর্তী সংস্করণ) এটাই :
Utf8 [/ utf8mb3] নামের অক্ষর সেটটি প্রতিটি চরিত্রে সর্বোচ্চ তিনটি বাইট ব্যবহার করে এবং এতে কেবল বিএমপি অক্ষর থাকে। মাইএসকিউএল 5.5.3 হিসাবে, utf8mb4 অক্ষর সেটটি পরিপূরক অক্ষরের পক্ষে সর্বোচ্চ চারটি বাইট ব্যবহার করে:
একটি বিএমপি চরিত্রের জন্য, ইউটিএফ 8 [/ utf8mb3] এবং utf8mb4 এর একই স্টোরেজ বৈশিষ্ট্য রয়েছে: একই কোড মান, একই এনকোডিং, একই দৈর্ঘ্য।
পরিপূরক চরিত্রের জন্য, utf8 [/ utf8mb3] অক্ষরটি মোটেও সংরক্ষণ করতে পারে না , যখন utf8mb4- এ এটি সংরক্ষণ করার জন্য চারটি বাইট প্রয়োজন। যেহেতু utf8 [/ utf8mb3] অক্ষরটি মোটেও সংরক্ষণ করতে পারে না, আপনার কাছে utf8 [/ utf8mb3] কলামগুলিতে কোনও পরিপূরক অক্ষর নেই এবং utf8 [/ utf8mb3] এর পুরানো সংস্করণগুলি থেকে ডেটা আপগ্রেড করার সময় আপনার চরিত্র রূপান্তরকরণ বা ডেটা হারাতে হবে না worry মাইএসকিউএল।
সুতরাং যদি আপনি চান যে আপনার কলাম BMP এর বাইরে থাকা অক্ষরগুলি (এবং আপনি সাধারণত চান) যেমন ইমোজি সঞ্চয় করতে সমর্থন করেন তবে "utf8mb4" ব্যবহার করুন। এছাড়াও দেখুন প্রকৃত ব্যবহারে সর্বাধিক সাধারণ নন-বিএমপি ইউনিকোড অক্ষরগুলি কী কী? ।