প্রধান কনটেন্টে যান

Unicode Push Notifications

বাংলা ওয়েবসাইট ও অ্যাপ্লিকেশনে সঠিক, পরিচ্ছন্ন ও নির্ভরযোগ্য বাংলা নোটিফিকেশন পাঠানোর কাঠামো।

ইউনিকোড পুশ নোটিফিকেশন: মোবাইল ডিভাইসে বাংলা নোটিফিকেশন দেখানো হচ্ছে
Unicode Bijoy Editorial Desk
আপডেট: পড়তে সময়: ৬ মিনিট

Unicode Push Notifications হলো এমন একটি বিজ্ঞপ্তি প্রেরণ কাঠামো, যেখানে বার্তার টেক্সট ইউনিকোড বা UTF-8 এনকোডিংয়ে পাঠানো হয়। ফলে বাংলা, অসমীয়া, হিন্দিসহ জটিল স্ক্রিপ্টভিত্তিক ভাষাগুলো ব্রাউজার ও অপারেটিং সিস্টেমে নির্ভুলভাবে রেন্ডার হয়।

বাংলাদেশের অনেক ওয়েবসাইটে এখনও পুরোনো Bijoy 52/55 বা ANSI এনকোডিং ব্যবহৃত হয়। এই ডেটা যখন সরাসরি পুশ নোটিফিকেশনে পাঠানো হয়, তখন বাংলা অক্ষর ভেঙে যায় বা অস্পষ্ট কোড হিসেবে দেখায়। ইউনিকোড পুশ নোটিফিকেশন সেই সমস্যা দূর করে একটি সার্বজনীন ও নির্ভরযোগ্য পদ্ধতি প্রদান করে।

ইউনিকোড পুশ নোটিফিকেশন কী?

Unicode Push Notifications মানে শুধু নোটিফিকেশন পাঠানো নয়; এটি নিশ্চিত করে যে বার্তার পেলোড সঠিক Unicode স্ট্যান্ডার্ডে পাঠানো হয়েছে। সাধারণত ওয়েব পুশ নোটিফিকেশনে ব্রাউজারের Notifications APIService Worker ব্যবহার করা হয়। সার্ভার যখন নোটিফিকেশন পাঠায়, তখন বাংলা টেক্সট যদি ইউনিকোডে থাকে, ব্যবহারকারীর ডিভাইস সেটিকে সিস্টেম ফন্ট দিয়ে সঠিকভাবে দেখায়।

ভাষা ও ফন্টের ভুল এনকোডিং সমস্যা এড়াতে পুশ পেলোডের charset, কন্টেন্ট-টাইপ হেডার এবং ডাটাবেজ টেবিল অবশ্যই UTF-8 বা অগ্রাধিকারভিত্তিক utf8mb4 চারসেটে রাখা প্রয়োজন।

ইউনিকোড পুশ নোটিফিকেশন যেভাবে কাজ করে

  1. অনুমতি গ্রহণ: ব্যবহারকারী প্রথমবার সাইটে এলে ব্রাউজার নোটিফিকেশন দেখানোর অনুমতি চায়। অনুমতি পেলে সাবস্ক্রিপশন তৈরি হয়।
  2. সাবস্ক্রিপশন সংরক্ষণ: তৈরি হওয়া endpoint ও কীগুলো সার্ভারে সংরক্ষণ করা হয়।
  3. পেলোড প্রেরণ: সার্ভার ইউনিকোড/UTF-8 বাংলা টেক্সটসহ নোটিফিকেশন পেলোড ব্রাউজারের পুশ সার্ভিসে পাঠায়।
  4. Service Worker গ্রহণ: ব্রাউজারের service worker push ইভেন্ট পায় এবং নোটিফিকেশন আকারে তা দেখায়।

নিচে একটি সাধারণ Service Worker-এর উদাহরণ দেখানো হলো:

self.addEventListener("push", (event) => {
        const payload = event.data?.json();

        event.waitUntil(
          self.registration.showNotification(payload.notification.title, {
            body: payload.notification.body,
            icon: payload.notification.icon,
            data: { url: payload.data?.url }
          })
        );
      });

কেন ইউনিকোড পুশ নোটিফিকেশন গুরুত্বপূর্ণ?

ইউনিকোডের মূল উদ্দেশ্য হলো একটি আন্তর্জাতিক মান তৈরি করা, যাতে প্রতিটি ভাষার অক্ষর একই এনকোডিংয়ে প্রকাশ করা যায়। বাংলাদেশের ডিজিটাল সেবা, ই-কমার্স ও নিউজ পোর্টালে বাংলা নোটিফিকেশন পাঠানো হলে ইউনিকোড ব্যবহার করা অপরিহার্য।

  • বিজ্ঞপ্তি ভাঙা অক্ষরহীন থাকে এবং পেশাদার দেখায়।
  • Android, iOS, Windows, macOS—সব প্ল্যাটফর্মে সমানভাবে কাজ করে।
  • ডাটাবেজে সংরক্ষিত পাঠ্য ও API-র মধ্যে এনকোডিং কনফ্লিক্ট কম হয়।
  • বাংলা টাইপিং সফটওয়্যার ও ফন্ট পরিবর্তনের ঝামেলা ছাড়াই ব্যবহার করা যায়।

বিজয় টেক্সটকে ইউনিকোডে রূপান্তর

যেসব প্রতিষ্ঠানের পুরোনো Bijoy-এ লেখা ডেটাবেজ রয়েছে, সেগুলো পুশ নোটিফিকেশনে পাঠানোর আগে রূপান্তর করা জরুরি। অন্যথায় ইউজার ইন্টারফেসে অক্ষর বিভ্রান্তি দেখা যেতে পারে। এজন্য আপনি চাইলে আমাদের বিজয় টু ইউনিকোড কনভার্টার নির্দেশিকাটিও পড়ে নিতে পারেন।

সেরা অনুশীলন

✅ UTF-8 নিশ্চিত করুন

API রেসপন্সে charset=UTF-8 দেন এবং ডাটাবেজ টেবিলে utf8mb4 ব্যবহার করেন।

✅ সংক্ষিপ্ত বার্তা

নোটিফিকেশনের title ও body সংক্ষিপ্ত এবং সুনির্দিষ্ট রাখুন।

✅ অনুমতির সম্মান

ব্যবহারকারীকে বাধ্য না করে স্বচ্ছভাবে নোটিফিকেশন অপ্ট-ইন সুবিধা দিন।

✅ সুরক্ষিত কানেকশন

পুশ API কলগুলো HTTPS-এর মাধ্যমে পাঠান এবং এনক্রিপশন নিশ্চিত করুন।

ব্রাউজার সাপোর্টের সাধারণ চিত্র

ব্রাউজার সাপোর্ট বিশেষ দ্রষ্টব্য
Google Chrome ডেস্কটপ ও Android-এ সক্রিয় সাপোর্ট
Microsoft Edge Chromium ইঞ্জিন ভিত্তিক
Mozilla Firefox ডেস্কটপ ও Android-এ সাপোর্ট
Safari আংশিক macOS ও iOS-এ সংস্করণ অনুযায়ী আলাদা

সচরাচর জিজ্ঞাসা

এটি সেই পুশ বিজ্ঞপ্তি পাঠানোর প্রক্রিয়া, যেখানে বার্তার টেক্সট ইউনিকোড বা UTF-8 এনকোডিংয়ে পাঠানো হয়। ফলে বাংলা, হিন্দি বা আরবিসহ বিভিন্ন ভাষা সঠিকভাবে রেন্ডার হয়।

কারিগরিভাবে সম্ভব হলেও নির্ভরযোগ্য নয়। পুরোনো বিজয় এনকোডিং অনেক ব্রাউজারে ভাঙা অক্ষর তৈরি করতে পারে; তাই ইউনিকোডই নিরাপদ ও বহুল প্রচলিত মান।

Chrome, Edge, Firefox সহ আধুনিক ব্রাউজারগুলোতে ওয়েব পুশ সাপোর্ট রয়েছে। তবে Safari ও মোবাইল ব্রাউজারে কিছু ক্ষেত্রে প্ল্যাটফর্ম নির্ভর আচরণ ভিন্ন হতে পারে।

ডাটাবেজ টেবিল ও সংযোগ поля utf8mb4 বা ইউনিকোড চারসেটে রাখতে হবে। এতে পাঠানো ডেটা সার্ভার থেকে ব্রাউজার পর্যন্ত সঠিকভাবে বহাল থাকে।