অদৃশ্য অক্ষর কী?

অদৃশ্য অক্ষর হল Unicode কোড পয়েন্ট যার কোনো দৃশ্যমান গ্লিফ নেই কিন্তু তবুও একটি স্ট্রিংয়ে স্থান দখল করে এবং সফটওয়্যার কীভাবে পাঠ্য প্রক্রিয়া বা রেন্ডার করে তা প্রভাবিত করে। এতে নিয়ন্ত্রণ অক্ষর (যেমন ট্যাব এবং লাইন ফিড), ফর্ম্যাট অক্ষর (যেমন শূন্য-প্রস্থ জয়েনার এবং দিকনির্দেশনামূলক চিহ্ন), বিভিন্ন হোয়াইটস্পেস ভেরিয়েন্ট এবং বাইট অর্ডার মার্ক (BOM) এর মতো বিশেষ চিহ্ন অন্তর্ভুক্ত রয়েছে। কারণ তারা কিছুই দেখায় না, তারা সাধারণ টেক্সট এডিটরে খুঁজে পাওয়া অত্যন্ত কঠিন এবং সূক্ষ্ম বাগ, ভাঙা লেআউট এবং ডেটা-প্রক্রিয়াকরণ ত্রুটির একটি সাধারণ উৎস।

টুল বর্ণনা

অদৃশ্য অক্ষর ভিউয়ার একটি ইন্টারেক্টিভ টেক্সট এডিটর যা প্রতিটি অদৃশ্য অক্ষরকে একটি দৃশ্যমান প্রতীক হিসাবে রেন্ডার করে, ঠিক জায়গায়। যেকোনো পাঠ্য পেস্ট বা টাইপ করুন এবং প্রতিটি লুকানো অক্ষর অবিলম্বে একটি ছোট প্রতীকী গ্লিফ দ্বারা প্রতিস্থাপিত হয় — ট্যাবগুলি হিসাবে প্রদর্শিত হয়, স্পেসগুলি · হিসাবে, শূন্য-প্রস্থ স্পেসগুলি · হিসাবে, দিকনির্দেশনামূলক চিহ্নগুলি / হিসাবে, BOM হিসাবে এবং আরও অনেক কিছু। যেকোনো গ্লিফের উপর হভার করলে অক্ষরের সম্পূর্ণ নাম এবং Unicode কোড পয়েন্ট সহ একটি টুলটিপ প্রদর্শিত হয়। কিছুই এডিটর থেকে বেরিয়ে যায় না; সমস্ত রেন্ডারিং আপনার ব্রাউজারে স্থানীয়ভাবে ঘটে।

উদাহরণ

ইনপুট পাঠ্য (কাঁচা) ভিউয়ারে আপনি যা দেখেন
Hello\u200BWorld (শব্দের মধ্যে শূন্য-প্রস্থ স্পেস) Hello·World যেখানে · গ্লিফ U+200B চিহ্নিত করে
\u202Eright-to-left override →right-to-left override শুরুতে দিকনির্দেশনামূলক গ্লিফ সহ
line one\r\nline two নতুন লাইনের আগে ক্যারেজ-রিটার্ন এবং লাইন-ফিড গ্লিফ
\uFEFFstart of file ▯start of file অবস্থান 0 এ BOM দেখাচ্ছে

বৈশিষ্ট্য

  • ইনলাইন রেন্ডারিং: অদৃশ্য অক্ষরগুলি একটি পৃথক প্যানেলের পরিবর্তে এডিটরের ভিতরে সরাসরি গ্লিফ হিসাবে প্রদর্শিত হয়, তাই আপনি সেগুলি চারপাশের পাঠ্যের সাথে প্রসঙ্গে দেখতে পান
  • ব্যাপক অক্ষর কভারেজ: C0 এবং C1 নিয়ন্ত্রণ অক্ষর, সমস্ত নামকৃত Unicode ফর্ম্যাট অক্ষর, Unicode হোয়াইটস্পেস ভেরিয়েন্ট (en স্পেস, em স্পেস, হেয়ার স্পেস, সংকীর্ণ নো-ব্রেক স্পেস, ইত্যাদি), দিকনির্দেশনামূলক ফর্ম্যাটিং অক্ষর, ভেরিয়েশন সিলেক্টর, ট্যাগ অক্ষর এবং BOM পরিচালনা করে
  • টুলটিপ: যেকোনো গ্লিফের উপর হভার করলে অক্ষরের সম্পূর্ণ Unicode নাম এবং কোড পয়েন্ট প্রদর্শিত হয় (যেমন, Zero Width Space — U+200B)
  • মান হোয়াইটস্পেস হাইলাইটিং: নিয়মিত স্পেস এবং ট্যাবগুলি CodeMirror এর অন্তর্নির্মিত হোয়াইটস্পেস মার্কার ব্যবহার করে হাইলাইট করা হয়, সেগুলিকে নিয়মিত পাঠ্য থেকে দৃশ্যমানভাবে আলাদা রাখে
  • সাধারণ-পাঠ্য মোড: এডিটরটি সাধারণ-পাঠ্য মোডে থাকে যাতে বিশেষ অক্ষরগুলি কখনও পুনরায় ব্যাখ্যা বা পরিবর্তিত না হয় যখন আপনি টাইপ করেন

ব্যবহারের ক্ষেত্র

  • কপি-পেস্ট শিল্পকর্ম ডিবাগিং: PDF, ওয়েব পৃষ্ঠা বা ওয়ার্ড প্রসেসর থেকে অনুলিপি করা পাঠ্য প্রায়শই শূন্য-প্রস্থ স্পেস, নরম হাইফেন বা নো-ব্রেক স্পেস বহন করে যা স্ট্রিং তুলনা এবং অনুসন্ধান ফলাফলে অমিল সৃষ্টি করে
  • ডেটা ফাইল পরিদর্শন: CSV, JSON বা লগ আউটপুট পেস্ট করুন অপ্রত্যাশিত নিয়ন্ত্রণ অক্ষর (নাল বাইট, ক্যারেজ রিটার্ন, BOM) সনাক্ত করতে ডেটা একটি ডাটাবেস বা পার্সারে আমদানি করার আগে
  • ওয়েব এবং কোড ডিবাগিং: ব্যবহারকারী-সরবরাহকৃত ইনপুট বা API প্রতিক্রিয়া পরীক্ষা করুন লুকানো দিকনির্দেশনামূলক চিহ্ন বা ফর্ম্যাট অক্ষরের জন্য যা রেন্ডারিং ভাঙতে বা নিরাপত্তা সমস্যা সৃষ্টি করতে পারে

এটি কীভাবে কাজ করে

টুলটি CodeMirror 6 ব্যবহার করে একটি কাস্টম এক্সটেনশন সহ যা এডিটরের দৃশ্যমান ভিউপোর্টে প্রতিটি অক্ষর পুনরাবৃত্তি করে। প্রতিটি কোড পয়েন্টের জন্য এটি পরিচিত অদৃশ্য অক্ষরগুলির একটি লুকআপ টেবিল পরীক্ষা করে, Unicode সম্পত্তি ক্লাস \p{Cc} (নিয়ন্ত্রণ) এবং \p{Cf} (ফর্ম্যাট) এর বিরুদ্ধে পরীক্ষা করে এবং ভেরিয়েশন সিলেক্টর এবং ট্যাগ অক্ষর পরিসীমা সনাক্ত করে। মিলিত অক্ষরগুলি সংশ্লিষ্ট প্রতীক গ্লিফ দেখানো ইনলাইন সজ্জা উইজেট দ্বারা প্রতিস্থাপিত হয়। নিয়মিত স্পেস এবং ট্যাবগুলি CodeMirror এর অন্তর্নির্মিত highlightWhitespace এক্সটেনশনে অর্পণ করা হয়।