একটি সাক্ষাত্কারের প্রশ্ন হিসাবে, সাধারণত তাদের ক্রমটি বিপরীত করতে 8-বিট আইটেমগুলির ইন-প্লেস আইটেমের ইন-প্লেস সোয়াপ করার প্রযুক্তিগত বিট সম্পর্কে জিজ্ঞাসা করা হয় (সেগুলি আসলে কী চরিত্রগুলি উপস্থাপন করতে পারে তা নির্বিশেষে)।
একই সময়ে, বিশেষত আপনি যদি অপেক্ষাকৃত প্রবীণ ব্যক্তির সাথে সাক্ষাত্কার নিচ্ছেন তবে আপনি কমপক্ষে স্পেসিফিকেশন এবং ইনপুটটির সঠিক ফর্ম সম্পর্কে কিছু প্রশ্ন শুনতে আশা করতে পারেন। এমনকি যদি আপনি তাদের 8-বিট আইটেমগুলি সরিয়ে নেওয়ার সাধারণ ক্ষেত্রে ফিরে যান তবে তা জেনেও তারা এর চেয়ে আরও বিস্তৃত পদে ভাবেন কিনা তা মূল্যবান হতে পারে।
আপনার যদি বিস্তৃত ইনপুটগুলি মোকাবেলা করতে হয় তবে আপনাকে কেবল "স্ট্যাক" এর দিক থেকে ভাবতে হবে, কিছুটা নেটওয়ার্ক স্ট্যাকের মতো। আপনাকে আপনার সফ্টওয়্যারটি কয়েকটি স্তরে তৈরি করতে হবে, যার প্রতিটি একটি নির্দিষ্ট ক্রমে ট্রান্সফর্মগুলির মোটামুটি নির্দিষ্ট সেট প্রয়োগ করে। এটি আপনাকে রূপান্তরের প্রতিটি অংশকে পর্যাপ্ত সরল রাখতে দেয় যা আপনি এটিকে নিয়ন্ত্রণে রাখতে পারেন এবং এর প্রয়োজনীয়তাগুলি পূরণ করার পক্ষে যুক্তিসঙ্গত সুযোগ দাঁড়াতে পারেন।
আমি একটি সম্ভাবনার রূপরেখা করব যা আমি কমপক্ষে কিছুটা কার্যক্ষম বলে মনে করেছি। আমি প্রথমে স্বীকার করি যে আরও কিছু লোক রয়েছে যাদের সম্পর্কে আরও ভাল ধারণা থাকতে পারে। কমপক্ষে আমার কাছে, এটিকে কিছুটা প্রকৃত কমনীয়তার সাথে ব্রুট-ফোর্স ইঞ্জিনিয়ারিংয়ের মতো মনে হচ্ছে।
আপনি সাধারণত অন্য কোনও উপস্থাপনাটি ইউসিএস -4 (ওরফে ইউটিএফ -32) এ রূপান্তর করে শুরু করতে চান। এর জন্য, আপনি নিজেরাই এটি বের করার চেষ্টা করার চেয়ে আপনি সাধারণত ব্যবহারকারী থেকে ইনপুট উপর নির্ভর করতে পছন্দ করেন। কিছু ক্ষেত্রে, আপনি নিশ্চিত হতে পারেন যে অক্টেটের একটি নির্দিষ্ট ক্রম কোনও নির্দিষ্ট এনকোডিং স্কিমের নিয়মকে অনুসরণ করে না তবে আপনি খুব কমই (কখনও কখনও) নিশ্চিত হতে পারেন যে এটি কোনও নির্দিষ্ট এনকোডিং প্রকল্প অনুসরণ করে।
পরবর্তী পদক্ষেপটি .চ্ছিক। আপনি চারটি ইউনিকোড নরমালাইজেশন ফর্মগুলির একটিতে ইনপুটটিকে সাধারণ করতে পারেন। এই ক্ষেত্রে, আপনি সম্ভবত "এনএফকেসি" রূপান্তরটি প্রয়োগ করতে চান: সামঞ্জস্যতা পচে যাওয়ার পরে ক্যানোনিকাল কম্পোজিশন। এটি (যেখানে সম্ভব) ডায়াক্রিটিকাল ফর্মগুলির সংমিশ্রণ (যেমন ইউ + 301 যে জন উল্লেখ করেছেন) একক কোড পয়েন্টে রূপান্তরিত করবে (উদাহরণস্বরূপ, "ইউ + 301" সহ একটি "এ" তাত্পর্য সহ "ল্যাটিন রাজধানী এ" তে রূপান্তরিত হবে) , ইউ +00 সি 1)।
তারপরে আপনি শুরু থেকে শেষ অবধি সমস্ত চরিত্রের মধ্য দিয়ে হাঁটবেন, স্ট্রিংটিকে প্রকৃত অক্ষরগুলিতে বিভক্ত করুন - এবং যদি সেখানে (এখনও) ডায়াক্রিটিক চিহ্নগুলির সমন্বয় থাকে, তবে তাদের সংশোধন করা অক্ষরের সাথে রাখবেন। এর ফলাফলটি সাধারণত স্ট্রিংয়ের প্রকৃত অক্ষরগুলির সূচক যেমন প্রতিটিটির অবস্থান এবং দৈর্ঘ্য।
আপনি আগের পদক্ষেপে তৈরি সূচকটি ব্যবহার করে those সম্পূর্ণ অক্ষরের ক্রমটি বিপরীত।
তারপরে আপনি (আবারও, বিকল্পভাবে) আরেকটি ইউনিকোড নরমালাইজেশন প্রক্রিয়া প্রয়োগ করুন, যেমন এনএফডি (ক্যানোনিকাল পচন)। এটি উল্লিখিত "তীব্র সহ ল্যাটিন এ" কে দুটি কোড পয়েন্টে ফিরিয়ে দেবে - একটি "লাতিন রাজধানী এ" এবং "সংশ্লেষ তীব্র"। আপনার ইনপুটটিতে যদি শুরু হয় যে কোনও U + 00C1 রয়েছে তবে এটি এটিকে দুটি কোড পয়েন্টেও রূপান্তর করতে পারে।
তারপরে আপনি ইউসিএস -4 কোড পয়েন্টগুলির ক্রমকে পছন্দসই এনকোডিংয়ের (এনটিএফ -8, ইউটিএফ -16 ইত্যাদি) এনকোড করুন
নোট করুন যে ইউনিকোডের নরমালাইজেশন পদক্ষেপগুলি স্ট্রিংটি সংরক্ষণ করার জন্য প্রয়োজনীয় কোড পয়েন্টগুলির সংখ্যা পরিবর্তন করতে পারে / করতে পারে, সুতরাং আপনি যদি সেগুলি অন্তর্ভুক্ত করেন তবে আপনি আর ফলস স্ট্রিংয়ের মূল স্টোরেজে ফিটিংয়ের পরিকল্পনা করতে পারবেন না। স্পষ্টতই যথেষ্ট, ফলাফল কোড পয়েন্টগুলি সরাসরি ইনপুট কোড পয়েন্টের সাথে সামঞ্জস্য করতে পারে না।