গাইড
১২ মার্চ, ২০২৬
ইউনিকোড প্রতীক: একজন ডেভেলপার এবং ডিজাইনারের সম্পূর্ণ রেফারেন্স
ইউনিকোড প্রতীক সম্পর্কে আপনার যা জানা দরকার—তীর, গাণিতিক অপারেটর, মুদ্রা চিহ্ন এবং বক্স-আঁকানোর অক্ষর—এবং আপনার প্রকল্পে কীভাবে সেগুলো ব্যবহার করবেন।
ইউনিকোড আধুনিক টেক্সট রেন্ডারিংয়ের মেরুদণ্ড। আপনি পর্দায় যে প্রতিটি অক্ষর দেখতে পান—‘A’ অক্ষর থেকে ইমোজি 🎉 থেকে ম্যাথমেটিক্যাল ইন্টিগ্রাল সাইন ∫—প্রত্যেকটির একটি ইউনিকোড কোড পয়েন্ট রয়েছে যা এটিকে অনন্যভাবে চিহ্নিত করে। ডেভেলপার এবং ডিজাইনারদের জন্য, ইউনিকোড সিম্বল বোঝা সম্ভাবনার একটি জগৎ খুলে দেয়: ডেকোরেটিভ এলিমেন্ট যার কোনো ইমেজ ফাইল দরকার নেই, অ্যাক্সেসিবল আইকন যা পুরোপুরি স্কেল করে, টেকনিক্যাল নোটেশন যা সর্বত্র সঠিকভাবে রেন্ডার হয়, এবং ভিজুয়াল ফ্লোরিশ যা প্লেইন টেক্সট কনটেক্সটে কাজ করে যেখানে ছবি যেতে পারে না।
ইউনিকোড কী এবং কেন এটি গুরুত্বপূর্ণ?
ইউনিকোডের আগে, কম্পিউটিং জগত ডজনখানেক অসামঞ্জস্যপূর্ণ ক্যারেক্টার এনকোডিং সিস্টেমে বিভক্ত ছিল। ASCII ১২৮ কোড পয়েন্টের মাধ্যমে মৌলিক ইংরেজি অক্ষর কভার করত। ISO 8859 বিভিন্ন আঞ্চলিক সেট যোগ করে এটি বাড়িয়েছে। Shift JIS জাপানি হ্যান্ডেল করত। Big5 ট্র্যাডিশনাল চাইনিজ কভার করত। প্রতিটি সিস্টেম বিচ্ছিন্নভাবে কাজ করত, এবং অন্য এনকোডিং থেকে টেক্সট প্রদর্শন করলে গার্বল রেজাল্ট আসত—কুখ্যাত "মোজিবাকে" সমস্যা।
ইউনিকোড এই সমস্যার সমাধান করেছে একটি একক, সার্বজনীন স্ট্যান্ডার্ড তৈরি করে যা প্রতিটি লেখার সিস্টেমের প্রতিটি অক্ষরকে একটি অনন্য কোড পয়েন্ট বরাদ্দ করে। বর্তমান ইউনিকোড সংস্করণ (১৬.০, ২০২৪ সালে প্রকাশিত) ১৫৪,০০০-এরও বেশি অক্ষর সংজ্ঞায়িত করে যা ১৬৮টি আধুনিক ও ঐতিহাসিক লিপি, plus হাজার হাজার প্রতীক, টেকনিক্যাল অক্ষর এবং ইমোজি কভার করে। প্রতিটি বড় অপারেটিং সিস্টেম, ব্রাউজার, প্রোগ্রামিং ল্যাঙ্গুয়েজ ও ডাটাবেস ইউনিকোড সমর্থন করে, সাধারণত UTF-8 এনকোডিংয়ের মাধ্যমে যা ওয়েবে প্রধান ক্যারেক্টার এনকোডিং হয়ে উঠেছে (২০২৬ সাল নাগাদ ৯৮% এর বেশি ওয়েবসাইট এটি ব্যবহার করে)।
ওয়েব ডেভেলপার এবং ডিজাইনারদের জন্য, এই সার্বজনীনতার অর্থ হলো, ইউনিকোড প্রতীক যেকোনো জায়গায় ব্যবহার করা যেতে পারে যেখানে টেক্সট সমর্থিত: HTML কন্টেন্ট, CSS সিউডো-এলিমেন্ট, জাভাস্ক্রিপ্ট স্ট্রিং, ডাটাবেস ফিল্ড, API রেসপন্স, ইমেইল কন্টেন্ট এবং আরও অনেক কিছু। ছবি বা আইকন ফন্টের বিপরীতে, ইউনিকোড প্রতীকের কোনো বাহ্যিক ফাইল প্রয়োজন হয় না, তাৎক্ষণিকভাবে লোড হয় এবং গুণমান নষ্ট না করে যেকোনো আকারে স্কেল হয়।
জনপ্রিয় ইউনিকোড সিম্বল ব্লক
তীর (U+2190–U+21FF এবং আরও)
ইউনিকোড বেশ কয়েকটি ব্লক জুড়ে অ্যারো অক্ষরের একটি বিস্তৃত সংগ্রহ সরবরাহ করে। এগুলি ইউআই ডিজাইন, নেভিগেশন উপাদান এবং টেকনিক্যাল ডকুমেন্টেশনের জন্য অমূল্য।
U+2190
U+2192
U+2191
U+2193
U+21D0
U+21D2
U+2197
U+21A9
সাপ্লিমেন্টাল অ্যারোস ব্লক (U+27F0–U+27FF, U+2900–U+297F) অতিরিক্ত অপশন প্রদান করে যার মধ্যে রয়েছে লম্বা তীর (⟶, ⟵), জোড়া তীর (⇄, ⇆), এবং বিশেষায়িত টেকনিক্যাল তীর। একটি সম্পূর্ণ ব্রাউজযোগ্য সংগ্রহের জন্য, GetMoji-তে প্রতীকের বিভাগ দেখুন।
গাণিতিক অপারেটর (U+2200–U+22FF)
প্রযুক্তিগত ডকুমেন্টেশন, শিক্ষামূলক বিষয়বস্তু এবং ডেটা-চালিত অ্যাপ্লিকেশনের জন্য অপরিহার্য।
যোগ-বিয়োগ
গুণ
ডিভাইড
সমান নয়
ছোট বা সমান
বড় বা সমান
ইনফিনিটি
সমষ্টি
কারেন্সি সিম্বল (U+20A0–U+20CF)
মুদ্রা প্রতীক ই-কমার্স, আর্থিক অ্যাপ্লিকেশন এবং আন্তর্জাতিকীকৃত কন্টেন্টের জন্য অত্যন্ত গুরুত্বপূর্ণ। ইম্প্রোভাইজড বিকল্পের (যেমন “EUR” এর পরিবর্তে €) বদলে সঠিক ইউনিকোড প্রতীক ব্যবহার করা পেশাদারিত্ব ও নির্ভুলতার পরিচয় দেয়।
ডলার
ইউরো
পাউন্ড
ইয়েন/ইউয়ান
রুপি
ওন
বিটকয়েন
তুর্কিশ লিরা
বক্স ড্রইং (U+2500–U+257F)
বক্স-আঁকানোর অক্ষর প্লেইন টেক্সট পরিবেশে যেমন টার্মিনাল অ্যাপ্লিকেশন, README ফাইল এবং মনোস্পেসড ডিসপ্লেতে টেবিল, ডায়াগ্রাম এবং কাঠামোবদ্ধ লেআউট তৈরির জন্য অপরিহার্য।
┌──────────┬──────────┐ │ Cell 1 │ Cell 2 │ ├──────────┼──────────┤ │ Cell 3 │ Cell 4 │ └──────────┴──────────┘
এই অক্ষরগুলোর মধ্যে রয়েছে একক-লাইন (─, │, ┌, ┐, └, ┘), ডাবল-লাইন (═, ║, ╔, ╗, ╚, ╝), এবং মিশ্র ভেরিয়েন্ট যা সম্পূর্ণ টেক্সটে জটিল টেবিল কাঠামো তৈরি করতে দেয়।
বিবিধ প্রতীক এবং ডিংব্যাটস
ইউনিকোডে শত শত আলংকারিক এবং কার্যকরী প্রতীক একাধিক ব্লকে ছড়িয়ে আছে: চেকমার্ক (✓, ✔), ক্রস (✕, ✖), তারা (★, ☆, ✦, ✧), হার্ট (♡, ♥), মিউজিক্যাল নোট (♪, ♫), আবহাওয়ার প্রতীক (☀, ☁, ☂), এবং আরও অনেক কিছু। এগুলো ওয়েব ডিজাইনে হালকা ওজনের আলংকারিক উপাদান হিসেবে বিশেষভাবে কার্যকর, যা সাধারণ ইন্ডিকেটরের জন্য আইকন ফন্ট বা SVG ফাইলের প্রয়োজনীয়তা দূর করে।
HTML-এ ইউনিকোড প্রতীক ব্যবহার করা
HTML-এ ইউনিকোড সিম্বল অন্তর্ভুক্ত করার তিনটি প্রধান উপায় রয়েছে:
সরাসরি ইনসার্টেশন: সরাসরি আপনার HTML সোর্স কোডে অক্ষরটি পেস্ট করুন। এটি কাজ করে কারণ আধুনিক HTML ডকুমেন্ট ডিফল্টভাবে UTF-8 এনকোডিং ব্যবহার করে। নিশ্চিত করুন আপনার ডকুমেন্টে মেটা charset ডিক্লারেশন আছে: <meta charset="UTF-8">।
HTML সত্তা: নামযুক্ত সত্তার জন্য সত্তার নাম ব্যবহার করুন (যেমন, → → এর জন্য, ♥ ♥ এর জন্য)। সংখ্যাসূচক সত্তার জন্য দশমিক (→) অথবা হেক্সাডেসিমেল (→) কোড পয়েন্ট ব্যবহার করুন।
CSS content প্রপার্টি: CSS সিউডো-এলিমেন্টে, ব্যাকস্ল্যাশের আগে হেক্স কোড পয়েন্ট দিয়ে অক্ষর উল্লেখ করুন: content: '\2192' → এর জন্য। এটি ::before এবং ::after সিউডো-এলিমেন্টের মাধ্যমে HTML-এ নন-সিম্যান্টিক মার্কআপ না যোগ করে ডেকোরেটিভ সিম্বল যোগ করার জন্য বিশেষভাবে উপযোগী।
জাভাস্ক্রিপ্টে ইউনিকোড ব্যবহার
জাভাস্ক্রিপ্ট স্ট্রিংগুলি ইউনিকোড নেটিভভাবে সমর্থন করে। আপনি সরাসরি অক্ষর অন্তর্ভুক্ত করতে পারেন, এস্কেপ সিকোয়েন্স ব্যবহার করতে পারেন (\u2192 → এর জন্য), অথবা বেসিক মাল্টিলিঙ্গুয়াল প্লেনের বাইরের অক্ষরগুলির জন্য নতুনতর কোড পয়েন্ট সিনট্যাক্স ব্যবহার করতে পারেন (\u{1F600} 😀 এর জন্য)। String.fromCodePoint() মেথড সংখ্যাসূচক কোড পয়েন্টকে অক্ষরে রূপান্তর করে, এবং codePointAt() একটি স্ট্রিংয়ের অক্ষরের কোড পয়েন্ট রিট্রিভ করে।
জাভাস্ক্রিপ্টে ইউনিকোড নিয়ে কাজ করার সময়, সারোগেট জোড়া সম্পর্কে সচেতন থাকুন। BMP-র বাইরের অক্ষরগুলি (U+FFFF-এর উপরের কোড পয়েন্ট, বেশিরভাগ ইমোজি সহ) অভ্যন্তরীণভাবে দুটি UTF-16 কোড ইউনিট হিসাবে প্রতিনিধিত্ব করা হয়। এর অর্থ '😀'.length 1 না ফিরে 2 রিটার্ন করে। অক্ষরগুলি সঠিকভাবে পুনরাবৃত্তি করতে Array.from(string) অথবা স্প্রেড অপারেটর [...string] ব্যবহার করুন।
অ্যাক্সেসিবিলিটি বিবেচনা
ইউনিকোড প্রতীক নির্দিষ্ট অ্যাক্সেসিবিলিটি চ্যালেঞ্জ তৈরি করে যা ডেভেলপারদের সমাধান করতে হবে:
- স্ক্রিন রিডারের আচরণ পরিবর্তিত হয়। কিছু স্ক্রিন রিডার ইউনিকোড প্রতীক নাম ধরে ঘোষণা করে, অন্যরা এড়িয়ে যায় এবং কেউ কেউ অসামঞ্জস্যপূর্ণভাবে ঘোষণা করে। একটি দৃশ্যত অর্থবহ তীর (→) এক স্ক্রিন রিডারে “ডানদিকের তীর” হিসেবে পড়া হতে পারে এবং অন্যটি উপেক্ষা করে।
- অর্থ বোঝানোর জন্য শুধুমাত্র প্রতীকের উপর নির্ভর করবেন না। যদি একটি তীর নেভিগেশন দিক নির্দেশ করে, তবে তা টেক্সটের সাথে যুক্ত করুন। যদি একটি চেকমার্ক সাফল্য নির্দেশ করে, তবে একটি টেক্সট লেবেল অন্তর্ভুক্ত করুন। অ্যাসিস্টিভ টেকনোলজি যাতে সঠিক অর্থ প্রকাশ করে তা নিশ্চিত করতে
aria-labelঅথবাaria-hidden="true"(ভিজুয়ালি হিডেন টেক্সট অল্টারনেটিভ সহ) ব্যবহার করুন। - ডেকোরেটিভ সিম্বল অ্যাসিস্টিভ টেকনোলজি থেকে লুকানো উচিত। যদি একটি প্রতীক শুধুমাত্র ডেকোরেটিভ হয়, তবে স্ক্রিন রিডারকে এটি ঘোষণা করা থেকে বিরত রাখতে এটি
<span aria-hidden="true">এর মধ্যে মোড়ানো করুন। - রঙ এবং প্রতীকের একা অবস্থা প্রকাশ করা উচিত নয়। ত্রুটি/সাফল্যের অবস্থার জন্য লাল ✕ এবং সবুজ ✓ বর্ণান্ধ ব্যবহারকারী এবং স্ক্রিন রিডার ব্যবহারকারীদের জন্য যথেষ্ট নয়। সর্বদা টেক্সট লেবেল অন্তর্ভুক্ত করুন।
সকল প্রকার ডিজিটাল এক্সপ্রেশনকে অ্যাক্সেসযোগ্য করার জন্য বিস্তারিত নির্দেশিকা দেখতে, আমাদের ইমোজি অ্যাক্সেসিবিলিটি আর্টিকেল পড়ুন।
ফন্ট সমর্থন ও রেন্ডারিং
সব ফন্ট সব ইউনিকোড অক্ষর সমর্থন করে না। যখন একটি ব্রাউজার নির্ধারিত ফন্টে উপস্থিত নয় এমন একটি অক্ষর দেখতে পায়, তখন এটি সিস্টেমের এমন একটি ফন্টে ফিরে যায় যা এটি সমর্থন করে। এই ফলব্যাক আচরণের অর্থ হল আপনার সাবধানে বেছে নেওয়া প্রতীকগুলি আশেপাশের টেক্সটের চেয়ে ভিন্ন টাইপফেসে রেন্ডার হতে পারে, যা ভিজুয়াল অসামঞ্জস্য সৃষ্টি করে।
এটি প্রশমিত করতে, নিম্নলিখিত কৌশলগুলো বিবেচনা করুন:
- বিভিন্ন প্ল্যাটফর্মে পরীক্ষা করুন। macOS-এ যে প্রতীক সুন্দরভাবে রেন্ডার হয়, তা ডিফারেন্ট সিস্টেম ফন্টের কারণে উইন্ডোজ বা লিনাক্সে ভিন্ন দেখাতে পারে।
- প্রতীক কভারেজ সমৃদ্ধ ওয়েব ফন্ট ব্যবহার করুন। Noto Sans এবং Noto Serif-এর মতো গুগল ফন্ট লিপি এবং প্রতীক ব্লক জুড়ে সার্বজনীন ইউনিকোড কভারেজের জন্য বিশেষভাবে ডিজাইন করা হয়েছে।
- ফন্ট স্ট্যাক প্রদান করুন। আপনার CSS
font-familyডিক্লারেশনে ফন্টগুলো পছন্দের ক্রম অনুসারে তালিকাভুক্ত করুন, একটি জেনেরিক ফ্যামিলি দিয়ে শেষ করুন। প্রতীক-ভারী কন্টেন্টের জন্য, আপনার স্ট্যাকে “Segoe UI Symbol” (উইন্ডোজ) এবং “Apple Symbols” (macOS) অন্তর্ভুক্ত করার কথা বিবেচনা করুন। - ইউনিকোড ব্লক চেক করুন। বিস্তৃত সমর্থিত ব্লকের (বেসিক ল্যাটিন, ল্যাটিন এক্সটেন্ডেড, অ্যারোজ, ম্যাথমেটিক্যাল অপারেটর) অক্ষরগুলি সব প্ল্যাটফর্মে সমানভাবে রেন্ডার হয়। কম সাধারণ ব্লকের অক্ষরগুলির জন্য নির্দিষ্ট ফন্ট সমর্থনের প্রয়োজন হতে পারে।
ডিজাইনারদের জন্য ব্যবহারিক ব্যবহারের ক্ষেত্র
ইউনিকোড প্রতীক ডিজাইনারদের বিভিন্ন পরিস্থিতিতে আইকন লাইব্রেরির হালকা বিকল্প অফার করে:
- ব্রেডক্রাম্ব সেপারেটর: কাস্টম SVG অ্যারোর পরিবর্তে › (U+203A) অথবা » (U+00BB) ব্যবহার করুন।
- লিস্ট মার্কার: CSS
list-style-typeবা::markerব্যবহার করে স্ট্যান্ডার্ড বুলেটের বদলে ◆, ▸, অথবা ✦ দিন। - রেটিং প্রদর্শন: যেকোনো ইমেজ অ্যাসেট ছাড়াই সহজ স্টার রেটিংয়ের জন্য ★ এবং ☆ একত্রিত করুন।
- স্ট্যাটাস ইন্ডিকেটর: অনলাইন/অফলাইন অবস্থার জন্য বিভিন্ন রঙে ● (ভরা বৃত্ত) ব্যবহার করুন, বা সাফল্য/ত্রুটির জন্য ✓/✕ ব্যবহার করুন।
- ডেকোরেটিভ অ্যাকসেন্ট: ※, ❧, ✿, ও ❖ এর মতো অক্ষর শিরোনাম এবং বিভাজক রেখায় ভিজুয়াল আগ্রহ যোগ করে।
প্রয়োজনীয় যেকোনো প্রতীক ব্রাউজ এবং কপি করুন GetMoji-এর প্রতীক সংগ্রহ থেকে, যা হাজার হাজার ইউনিকোড অক্ষরকে দ্রুত অ্যাক্সেসের জন্য অনুসন্ধানযোগ্য এবং বিভাগভুক্ত গ্রুপে সাজিয়ে রাখে।
ভবিষ্যতের দিকে তাকিয়ে
ইউনিকোড কনসোর্টিয়াম প্রতিটি নতুন সংস্করণের সাথে স্ট্যান্ডার্ড প্রসারিত করতে থাকে। সংস্করণ ১৬.০ বেশ কয়েকটি নতুন স্ক্রিপ্ট ব্লক এবং প্রতীক যোগ করেছে, এবং সংস্করণ ১৭.০-এর প্রস্তাবে অতিরিক্ত টেকনিক্যাল সিম্বল, ঐতিহাসিক স্ক্রিপ্ট অক্ষর এবং আরও ইমোজি অন্তর্ভুক্ত রয়েছে। ডেভেলপার এবং ডিজাইনারদের জন্য, ইউনিকোড আপডেট সম্পর্কে সচেতন থাকা নিশ্চিত করে যে আপনি প্ল্যাটফর্ম সমর্থন রোল আউট হওয়ার সাথে সাথে নতুন অক্ষরগুলির সুবিধা নিতে পারেন।
ইউনিকোড প্রতীক ওয়েব পেশাদারদের টুলকিটে সবচেয়ে কম ব্যবহার করা টুলগুলোর মধ্যে একটি। এগুলো বিনামূল্যে, সার্বজনীন, অ্যাক্সেসযোগ্য (সঠিকভাবে ব্যবহার করলে), এবং অসীমভাবে স্কেলযোগ্য। আপনি একটি নেভিগেশন কম্পোনেন্ট তৈরি করছেন, টেকনিক্যাল ডকুমেন্টেশন ফরম্যাট করছেন, বা মার্কেটিং পৃষ্ঠায় ভিজ্যুয়াল ফ্লেয়ার যোগ করছেন, সঠিক ইউনিকোড প্রতীক একটি ইমেজ প্রতিস্থাপন করতে পারে, লোডের সময় কমাতে পারে এবং প্রতিটি ব্যবহারকারীর জন্য অভিজ্ঞতা উন্নত করতে পারে।
GetMoji টিম
ওয়েব ডেভেলপমেন্ট বিশেষজ্ঞ