পছন্দটি ASCII এবং UTF-8 এর মধ্যে নয়। এএসসিআইআই একটি 7-বিট এনকোডিং এবং ইউটিএফ -8 এটিকে ছাড়িয়ে যায় - কোনও বৈধ ASCII পাঠ্যটি বৈধ ইউটিএফ -8ও হয়। আপনি যখন অ-এসসিআইআই অক্ষর ব্যবহার করেন তখন সমস্যাগুলি দেখা দেয়; এগুলির জন্য আপনাকে ইউটিএফ -8, ইউটিএফ -16, ইউটিএফ -32, এবং বিভিন্ন 8-বিট এনকোডিংগুলি (আইএসও-এক্সএক্সএক্সএক্সএক্স, ইত্যাদি) চয়ন করতে হবে।
সর্বাধিক সমাধান হ'ল একটি কঠোর ASCII অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষম থাকার অর্থ, কেবল আপনার কোডটিতে কোনও ASCII অক্ষর ব্যবহার করবেন না। বেশিরভাগ প্রোগ্রামিং ল্যাঙ্গুয়েজগুলি ASCII অক্ষর ব্যবহার করে অ-ASCII অক্ষর প্রকাশ করার উপায় সরবরাহ করে, উদাহরণস্বরূপ, "\u1234"
ইউনিকোড কোড পয়েন্টটি 1234-এ চিহ্নিত করা Especially এমনকি যদি তারা সঠিকভাবে কাজ করে তবে পৃথক কীবোর্ড বিন্যাস ব্যবহার করা লোকেরা এই অক্ষরগুলি টাইপ করার জন্য আপনাকে অভিশাপ দিতে চলেছে।
আপনি যদি নন-এসসিআইআই অক্ষরগুলি এড়াতে না পারেন তবে ইউটিএফ -8 আপনার সেরা বাজি bet ইউটিএফ -16 এবং ইউটিএফ -32-এর বিপরীতে, এটি ASCII এর একটি সুপারস্টার, যার অর্থ যে কেউ যদি এটিকে ভুল এনকোডিং দিয়ে খোলে তবে তার বেশিরভাগ অংশই সঠিক হয়ে যায়; এবং 8-বিট কোডেপেজের বিপরীতে, এটি আপনার প্রয়োজনীয় প্রতিটি অক্ষরকে এনকোড করতে পারে, নির্বিঘ্নে এবং এটি স্থানীয়ভাবে নির্বিশেষে প্রতিটি সিস্টেমে উপলব্ধ।
এবং তারপরে আপনার কোডটি প্রক্রিয়া করে এমন এনকোডিং রয়েছে; এটি আপনার উত্স ফাইলটির এনকোডিংয়ের মতো হতে হবে না। উদাহরণস্বরূপ, আমি সহজেই ইউটিএফ -8 এ পিএইচপি লিখতে পারি, তবে এর অভ্যন্তরীণ মাল্টিবাইট-এনকোডিংটি সেট করে বলি, ল্যাটিন -1; পিএইচপি পার্সার মোটেও এনকোডিংগুলির সাথে নিজেকে উদ্বেগ দেয় না, বরং কেবল বাইট সিকোয়েন্সগুলি পড়ে, আমার ইউটিএফ -8 স্ট্রিং লিটারেলগুলি ল্যাটিন -1 হিসাবে ভুল ব্যাখ্যা করা হবে। আমি যদি কোনও ইউটিএফ -8 টার্মিনালে এই স্ট্রিংগুলি আউটপুট দেয় তবে আপনি কোনও পার্থক্য দেখতে পাবেন না, তবে স্ট্রিংয়ের দৈর্ঘ্য এবং অন্যান্য মাল্টিবাইট ক্রিয়াকলাপগুলি (যেমন substr
) ভুল ফলাফল আনবে।
আমার থাম্বের নিয়মটি হ'ল প্রতিটি কিছুর জন্য ইউটিএফ -8 ব্যবহার করা; কেবলমাত্র যদি আপনাকে অন্য এনকোডিংগুলির সাথে ডিল করতে হয় তবে যত তাড়াতাড়ি সম্ভব ইউটিএফ -8 তে এবং যত তাড়াতাড়ি সম্ভব ইউটিএফ -8 থেকে রূপান্তর করুন।