পুনরায় এনকোডিং অক্ষরগুলি সাধারণত করা হয় যখন গ্রহণকারী সিস্টেমগুলি তাদের প্রক্রিয়া করতে না পারে। উদাহরণস্বরূপ, BASE64 দীর্ঘ ডাটা সিকোয়েন্সগুলি উপস্থাপন করতে অক্ষরের 6 বিট (2 6 , তাই 64৪) ব্যবহার করে ডেটা উপস্থাপন করছে (কখনও কখনও প্রদর্শিত হবে "==" প্রান্তিককরণের জন্য প্যাডিং হয়)। এটি কারণ ইমেইলে আপনার ছবি ফাইলটিতে 0xFE থাকতে পারে এবং আপনার মেল সার্ভারটি (বা অন্য কোনও traditionতিহ্যগতভাবে অপ্রকাশিত অক্ষর) প্রেরণে অসন্তুষ্ট হবে।
"আকার হ্রাস করে" এমন কোনও এনকোডিং নেই। এনকোডিংগুলি তারা প্রতিনিধিত্ব করে এমন চরিত্রের বিটগুলির ম্যাপিং। এটি বলেছিল, এএসসিআইআই হ'ল একটি বিট অক্ষর সেট (এনকোডিং) যা প্রায়শই 8 বিটের জায়গাতে সঞ্চয় করা হয়। আপনি যদি স্বীকার করেন এমন ব্যাপ্তিগুলি সীমাবদ্ধ করে রাখেন, আপনি নিয়ন্ত্রণের অক্ষরগুলিও ছড়িয়ে দিতে পারেন।
এই পদ্ধতিটি ব্যবহারের অর্থ আপনাকে বিট স্তরে জিনিসগুলি লিখতে হবে, এবং এটি মেশিনের গতি এবং নির্দেশাবলীর সাথে কিছুটা নরকও খেলে কারণ সমস্ত আধুনিক মেশিনে সারিবদ্ধতা রয়েছে যা 8 বিটের গুণক। উদাহরণস্বরূপ, ইউনিকোডটি ইউটিএফ -8, ইউটিএফ -16, এবং ইউটিএফ -32।
আপনি যদি এটি সুরক্ষার জন্য করছেন (সে কারণেই আপনি এটি সিকিউরিটি.এসইতে পোস্ট করেছেন, ঠিক?), কেবল জিনিসগুলি ফিল্টার করুন এবং এগুলিকে সাধারণত সংরক্ষণ করুন। আপনি যদি স্থান বাঁচাতে এই কাজটি করে থাকেন তবে সমস্ত অতিরিক্ত কোড এবং ধীর অ্যাক্সেসের সময় বিবেচনা করুন (কারণ বেশিরভাগ এন্ট্রি অ্যাড্রেসের সীমানা অতিক্রম করবে) স্থান সাশ্রয়ের জন্য মূল্যবান কিনা consider
বাই বাই, নীচে একটি সিএস কোর্সের একটি স্নিপেট রয়েছে যেখানে আমাদের 8 বিট স্টোরেজ থেকে bit বিটে ASCII রূপান্তর করতে হয়েছিল:
memset(dest,0x00,8);
memcpy(dest, source, length);
for (int i = 0; i < 8; i++) {
if (dest[i] & 0x80) {
fprintf(stderr, "%s: %s\n", dest, "Illegal byte sequence");
exit(EILSEQ);
}
}
dest[0] = 0x7F & dest[0] | 0x80 & dest[1] << 7;
dest[1] = 0x3F & dest[1] >> 1 | 0xC0 & dest[2] << 6;
dest[2] = 0x1F & dest[2] >> 2 | 0xE0 & dest[3] << 5;
dest[3] = 0x0F & dest[3] >> 3 | 0xF0 & dest[4] << 4;
dest[4] = 0x07 & dest[4] >> 4 | 0xF8 & dest[5] << 3;
dest[5] = 0x03 & dest[5] >> 5 | 0xFC & dest[6] << 2;
dest[6] = 0x01 & dest[6] >> 6 | 0xFE & dest[7] << 1;
dest[7] = 0x00; //Clearing out