উইন্ডোজের ক্লিপবোর্ডে নাল বাইট (ASCII 0x00) অনুলিপি করার কোনও উপায় আছে কি?


14

নাল বাইটস (ASCII 0x00) উইন্ডোজে অনুলিপিযোগ্য (Ctrl + C- সক্ষম) বলে মনে হয় না। এটি প্রদর্শনের জন্য, আপনার ব্রাউজারের ডেভ কনসোলটি খুলুন এবং করুন console.log('a\x00b')। আপনি যদি উইন্ডোজ 8 মেশিনে (এবং সম্ভবত উইন্ডোজের অন্যান্য সংস্করণগুলিতে) ফলাফলযুক্ত স্ট্রিংটি অনুলিপি করে আটকে রাখেন তবে আপনি দেখতে পাবেন যে কেবলমাত্র aঅনুলিপি করা হয়েছে। \x00পরে এবং সবকিছু উপেক্ষা করা হয়।

নাল বাইট রয়েছে এমন স্ট্রিংয়ের সম্পূর্ণ কপি করার কোনও উপায় আছে কি? ক্লিপবোর্ডটি কি নাল বাইট ধরে রাখতে পারে?

(সহায়ক প্রশ্ন: নাল বাইটগুলি কেন অনুলিপি করা যায় না? উদাহরণস্বরূপ এটির জন্য কোনও সুরক্ষা সম্পর্কিত কারণ আছে, বা এটি কি উইন্ডোজ নির্বোধ?)


ভাল প্রশ্ন .. এটি ক্লিপবোর্ডে রেখে দিচ্ছে কিনা তা আকর্ষণীয় হতে হবে xxd আউটপুট ক্যান্সার করতে পারে C:\>echo 000000| xxd -r -p|xxd -p<ENTER> 000000 C:\>echo 000000| xxd -r -p|clip<ENTER> >
বারলপ

আনক্সিটিলস ক্লিপ এবং প্লেইপ ব্যবহার করে C:\>echo 000000| xxd -r -p|gclip<ENTER> C:\>pclip|xxd -p<ENTER> C:\>pclip>a.a<ENTER> <- এটি নালগুলি ক্লিপবোর্ডে whetherুকছে কিনা তা আমার কাছে স্পষ্ট নয় .. বা সেগুলি ভিতরে রয়েছে তবে আটকানো হচ্ছে না।
বারলোপ

2
শৃঙ্খলে কোথাও কোনও প্রোগ্রাম নাল-টার্মিনেটেড স্ট্রিং ফাংশন / উপস্থাপনা (অর্থাত সি স্ট্রিং ফাংশন) ব্যবহার করছে। খুবই প্রচলিত. এ জাতীয় জিনিসগুলির সম্পর্কে আমার সামান্য বোধগম্যতা হ'ল "এম্বেডিং নলগুলি সহ সম্ভাব্য সুরক্ষা সমস্যা রয়েছে, বেশিরভাগ ক্ষেত্রে স্ট্রিং দৈর্ঘ্য এবং বাফার ওভারফ্লো (??) এর ভুল সনাক্তকরণের সম্ভাবনার কারণে।
ইয়োরিক

এটি একটি ধাঁধা: আমি একটি জেপিজির বিষয়বস্তুগুলি ক্লিপবোর্ডে অনুলিপি করেছি এবং যখন এটি আবার পড়ি তখন এটি প্রথম শূন্যে ছেঁটে ফেলা হয়েছিল, যা ক্লিপবোর্ডটি পাঠ্য ভিত্তিক বলে বোঝায়। তবুও আমি কোনও সমস্যা ছাড়াই গ্রাফিক্স প্যাকেজগুলির মধ্যে চিত্রগুলি ডাম্প করতে বা কাটা এবং আটকানোতে পারি।
এএফএইচ

আমার ধারণা এটি ব্যবহৃত ফরমেটের উপর নির্ভর করে। ক্লিপবোর্ড বিভিন্ন ফর্ম্যাট সমর্থন করে। আপনি যদি পাঠ্যের অনুলিপি করেন তবে এগুলি সম্ভবত নাল-অক্ষরগুলি সমর্থন করে না কারণ তারা স্ট্রিং টার্মিনেটর হিসাবে ব্যবহৃত হয়। আপনি যদি বাইনারি ক্লিপবোর্ড ফর্ম্যাট ব্যবহার করেন তবে নাল বাইটগুলি অনুলিপি করে পেস্ট করতে পারেন।
আলেক্সি ইভানভ

উত্তর:


10

না, আপনি ক্লিপবোর্ডে এমবেডড নাল অক্ষর সহ পাঠ্য রাখতে পারবেন না। আসুন স্ট্যান্ডার্ড উইন্ডোজ ক্লিপবোর্ড ফর্ম্যাটগুলির তালিকাটি দেখুন । কয়েকটি ফর্ম্যাট রয়েছে যা সাধারণত পাঠ্য হিসাবে বোঝা জিনিসগুলি ধারণ করে:

  • CF_TEXT (1)
  • CF_OEMTEXT (7)
  • CF_UNICODETEXT (13)

এর প্রত্যেকটির একটিতে এই বাক্যটির সংজ্ঞা রয়েছে:

একটি নাল অক্ষর ডেটার শেষের সংকেত দেয়।

এখন, CF_UNICODETEXT এটির ডেটাটিকে ইউটিএফ -16 এলই হিসাবে রাখে , সুতরাং এতে সম্ভবত কিছুটা নাল বাইট থাকবে তবে নাল অক্ষরগুলি ( একসাথে দুটি নাল বাইট, মূলত) স্ট্রিংটি এখনও শেষ করবে।

ক্লিপবোর্ড পাঠ্যে নাল অক্ষরগুলিকে কেন অনুমতি দেওয়া হচ্ছে না সে সম্পর্কে আমরা কেবল অনুমান করতে পারি, তবে সম্ভবত এটি উইন্ডোতে সর্বাধিক ব্যবহৃত স্ট্রিং প্রসেসিং ফাংশনগুলি নাল চরিত্রের সমাপ্তির সংকেত বলে ধরে নেয়। স্ট্রিং কোথায় থামছে তা জানার একমাত্র উপায়, এর দৈর্ঘ্য সহ এটি উপসর্গ করা।

আপনি ক্লিপবোর্ডে গ্রাফিকগুলি ধরে রাখতে পারেন যদিও তাদের সম্ভবত নাল বাইট রয়েছে কারণ তারা বিভিন্ন ক্লিপবোর্ডের ফর্ম্যাটগুলিতে (যেমন CF_BITMAP) পাস করেছেন , যা প্রোগ্রামগুলি দ্বারা আলাদাভাবে বুঝতে হবে।


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