Utf8 এবং latin1 এর মধ্যে পার্থক্য


128

utf8 এবং ল্যাটিন 1 এর মধ্যে পার্থক্য কী?


3
এগুলি পৃথক এনকোডিং ( কিছু অক্ষর সাধারণ বাইট অনুক্রমের সাথে ম্যাপযুক্ত, যেমন ASCII অক্ষর এবং অনেক উচ্চারণযুক্ত অক্ষর)। ইউটিএফ -8 ইউনিকোডের সমস্ত কোডপয়েন্ট সহ একটি এনকোডিং; ল্যাটিন 1 256 টির চেয়ে কম অক্ষরের এনকোড।
শ্রীভাতসার আর

যা লিনাক্স লোকেলে পাওয়া যায় এবং প্রশ্নে আপনাকে উল্লেখ করেছে করা হয়ে থাকতে পারে এছাড়াও latin9 নেই: en.wikipedia.org/wiki/ISO/IEC_8859-15
baptx

উত্তর:


151

ইউটিএফ -8 বিশ্ব আধিপত্যের জন্য প্রস্তুত, লাতিন 1 নয়।

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

নোট করুন যে পূর্ণ 4-বাইট ইউটিএফ -8 সমর্থনটি কেবল মাইএসকিউএল 5.5-এ চালু হয়েছিল। সংস্করণটির আগে, এটি কেবল অক্ষর প্রতি 3 বাইট পর্যন্ত যায়, চারিত্রিক প্রতি 4 বাইট নয়। সুতরাং, এটি কেবল বিএমপি বিমানটিকে সমর্থন করেছে এবং উদাহরণস্বরূপ ইমোজি বিমান নয়। আপনি যদি পুরো 4-বাইট ইউটিএফ -8 সমর্থন চান, তবে মাইএসকিউএলকে কমপক্ষে 5.5-এ উন্নীত করুন বা পোস্টগ্র্রেএসকিউএল এর মতো অন্য আরডিবিএমএসে যান। মাইএসকিউএল 5.5+ এ এটি বলা হয় utf8mb4


31
MySQL 5.1 সমর্থন 3 বাইট হল UTF-8, তবে মাইএসকিউএল 5.5 করে সমর্থন 4 বাইট হল UTF-8 utf8mb4 হিসাবে।
ভেলক্রো

2
@ বালুসসি আপনি কীভাবে ইউটিএফ -8 সম্পূর্ণরূপে সমর্থিত নয় সে সম্পর্কে আরও বিশদ বর্ণনা করতে পারেন? এর অর্থ কি মাইএসকিএল 5.1 সমস্ত ইউনিকোড অক্ষর সংরক্ষণ করতে পারে না ?
পেসিয়ার

2
@ পেসারিয়র: এটি কেবল অক্ষর প্রতি 3 বাইট সমর্থন করে, সুতরাং কেবল বিএমপি (প্রথম 65535 টি অক্ষর) সমর্থিত, অবশিষ্টাংশগুলি নয়। সমস্ত চরিত্রের জন্য,
এন.ইউইকিপিডিয়া.org

2
@ বালুসসি যেমন লোকেরা 5.1.63 ব্যবহার করছেন এবং ওয়েব সার্ভারের মাইএসকিএল সংস্করণটি আপডেট করার সুবিধা নেই, বিকল্পগুলি কী হতে পারে?
পেসেরিয়র

6
@ পেসারিয়র: আপনি নিজের VARBINARYপরিবর্তে নিজের মতো করে সাশ্রয় করতে VARCHARএবং ব্যবসায়ের স্তরটিতে ডিকোড / এনকোড করতে পারবেন তবে এটি হ্যাকি hack একটি নতুন প্রশ্ন জিজ্ঞাসা বিবেচনা করুন, সম্ভবত আরও ভাল উপায় আছে।
বালাসসি

47

লাতিন 1 এ প্রতিটি অক্ষর হ'ল এক বাইট দীর্ঘ। Utf8 এ একটি চরিত্র একাধিক বাইট নিয়ে গঠিত হতে পারে। ফলস্বরূপ utf8 এর ল্যাটিন 1 এর চেয়ে বেশি অক্ষর রয়েছে (এবং যে অক্ষরগুলির মধ্যে তাদের মিল রয়েছে তা অবশ্যই একই বাইট / বাইটেস্কেন্স দ্বারা উপস্থাপিত হয় না)।


1
আসকি ও বিন সম্পর্কে কী?
ইউশা আলেয়ুব

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

1
ধন্যবাদ, আমি binaryকোলিট মানে ...? এবং কোনটি ইংরেজি / সংখ্যাগত ক্ষেত্রগুলির জন্য ভাল: ascii_general_ciবা ascii_bin?
ইউশা আলেয়াউব
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.