আমি একটি ফাইল ফর্ম্যাট ডিজাইন করছি এবং আমি এটি সঠিকভাবে করতে চাই। যেহেতু এটি একটি বাইনারি ফর্ম্যাট, তাই ফাইলের প্রথম বাইট (বা বাইট) বৈধ পাঠ্য অক্ষরগুলি তৈরি করা উচিত নয় (ঠিক PNG ফাইল শিরোলেখ 1 এর মতো )। এটি এমন কয়েকটি সরঞ্জামগুলিকে মঞ্জুরি দেয় যা বিন্যাসটি স্বীকৃতি দেয় না এখনও প্রথম কয়েকটি বাইট দেখে এটি কোনও পাঠ্য ফাইল নয়।
উপরের 0x7F
যে কোনও কোডপয়েন্ট অবৈধ ইউএস-এএসসিআইআই, তাই এটি সহজ। তবে ইউনিকোডের জন্য এটি সম্পূর্ণ ভিন্ন গল্প। এছাড়াও বৈধ ইউনিকোড অক্ষর থেকে আছে ব্যক্তিগত ব্যবহারযোগ্য অক্ষর , noncharacters এবং সেন্টিনেল , আমি খুঁজে পাওয়া ইউনিকোড বক্তিগত- ব্যবহার অক্ষর, Noncharacters & সেন্টিনেল প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী ।
আমি ফাইলের শুরুতে বাইটের প্রেরণিক ক্রম কী হতে পারি যার ফলে অবৈধ ইউএস-এএসসিআইআই, ইউটিএফ -8, ইউটিএফ -16 এলই এবং ইউটিএফ -16 বিই হবে?
- স্পষ্টতই প্রথম বাইটের নীচের কোনও মান থাকতে পারে না
0x80
এটি বৈধ ইউএস-এএসসিআইআই (নিয়ন্ত্রণ) অক্ষর হবে, তাই0x00
এটি ব্যবহার করা যাবে না। - এছাড়াও, যেহেতু ব্যক্তিগত-ব্যবহারের অক্ষরগুলি বৈধ ইউনিকোড অক্ষর, তাই আমি এই কোড কোডটিও ব্যবহার করতে পারি না can't
- যেহেতু এটি অবশ্যই ছোট-এন্ডিয়ান এবং বিগ-এন্ডিয়ান ইউটিএফ -16 উভয়ের সাথেই কাজ করবে, সুতরাং একটি ননচার্যাক্টর যেমন
0xFFFE
এটি সম্ভবও নয় কারণ এর বিপরীতটি0xFEFF
বৈধ ইউনিকোড চরিত্র। - উপরে উল্লিখিত প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী ননচ্যাকার্টরগুলির মধ্যে কোনওটি ব্যবহার না করার পরামর্শ দেয় কারণ এর ফলে এখনও একটি বৈধ ইউনিকোড সিকোয়েন্স হবে, সুতরাং এর মতো কিছু
0xFFFF
চিত্রের বাইরেও রয়েছে।
ভবিষ্যতের প্রুফ প্রেরিত সেন্ডিনেল মানগুলি কীভাবে আমার ব্যবহারের জন্য রেখে যায়?
1 ) পিএনজি ফর্ম্যাটটিতে তার প্রথম বাইট হিসাবে নন-এএসসিআইআই 0x89
মান রয়েছে, তারপরে স্ট্রিংটি আসে PNG
। কোনও সরঞ্জাম যা পিএনজির প্রথম কয়েকটি বাইট পড়েছে তা নির্ধারণ করতে পারে যে এটি একটি বাইনারি ফাইল কারণ এটি ব্যাখ্যা করতে পারে না 0x89
। অন্যদিকে, একটি জিআইএফ ফাইলটি বৈধ এবং পঠনযোগ্য ASCII স্ট্রিংয়ের GIF
পরে আরও তিনটি বৈধ ASCII অক্ষর দ্বারা শুরু হয়। জিআইএফ-এর জন্য কোনও সরঞ্জাম নির্ধারণ করতে পারে এটি পাঠযোগ্য পাঠ্য ফাইল। এটি ভুল এবং অ-টেক্সরাল বাইট ক্রম দিয়ে ফাইলটি শুরু করার ধারণাটি অ্যান্ডি ম্যাকফ্যাডেনের ফাইল ফর্ম্যাটগুলি ডিজাইনের মাধ্যমে এসেছে from
GIF8
। একটি এসজিআই মুভি ফাইল শুরু হয় MOVI
। জিপ সংরক্ষণাগার ফাইলের একটি স্টাইল শুরু হয় ZZ
, আরও জনপ্রিয় পিকজিপ ফর্ম্যাট শুরু হয় PK
। প্রথম বাইটটি একটি অবৈধ পাঠ্য অক্ষর হওয়ার সীমাবদ্ধতা বন্যের মধ্যে যা পাওয়া যায় তার সাথে মিলছে বলে মনে হয় না। আমি কেন আগ্রহী তা কেন এটি প্রয়োজন a
Since it is a binary format, the first bytes of the file should not form valid textual characters
- আপনার যাদু ফাইলটি (/ usr / share / ম্যাজিক, বা / ইত্যাদি / অনেকগুলি ইউনিক্স সিস্টেমে ম্যাজিক) দেখতে হবে যা দেখায় যে এই অ্যাপ্লিকেশনটি ফাইলের প্রকারগুলি সনাক্ত করে। একটি পিএনজি ফাইল শুরু হয়\x89PNG\x0d\0a\x1a\x0a
- সেখানে "পিএনজি" নোট করুন, এটি একটি কাঁচা স্ট্রিং। ক্রমগুলি\x89
এবং অন্যান্যগুলি প্রিন্টযোগ্য বাইটগুলি tes