Bangla programming tutorials

বাংলা এসএমএস এ ৭০ এবং ইংরেজি এসএমএস এ ১৬০ ক্যারেক্টারে সমান টাকা কাটা হয় কেন?

SMS Counting System

বাংলা এসএমএস এ ৭০ এবং ইংরেজি এসএমএস এ ১৬০ ক্যারেক্টারে সমান টাকা কাটা হয় কেন?

এটি একটু জটিল কাউন্টিং সিস্টেম,  সাধারন ব্যবহার কারীদের জন্য খুবই কঠিন বোঝা । তাই অাজকে সহজভাবে ব্যাখা করার চেস্টা করবো ।

অাপনারা লক্ষ্য করে থাকবেন যে বাংলা এসএমএস পাঠালে সিঙ্গেল টেক্সপার্টের জন্য ৭০ ক্যারেকটারে ১টি এসএমএস এর সমান টাকা কাটা হয় যেখানে ইংরেজি এর ক্ষেত্রে ১৬০ ক্যারেকটারে ১টি এসএমএস এর সমান টাকা কাটা হয় ।

এই বৈষম্যের কারন কি?

কারন ব্যাখা করার পূর্বে কিছু টার্মস্ বলে দেই তাহলে বুঝতে সুবিধে হবে ।

Text Part: অাপনি যখন ইংরেজিতে ১৬০ এবং বাংলাতে ৭০ ক্যারেকটার এর বেশী এসএমএস পাঠাবেন তখন এটি বিভিন্ন ক্ষুদ্র ক্ষ্রদ্র ভাগে বিভক্ত হয়ে SMSC সার্ভারে প্রেরন হয় । যদি ইংরেজি হয় তবে ১৫৩ অার যদি বাংলা হয় ৬৭ কারেক্টারের ক্ষুদ্র ক্ষুদ্র ভাগে বিভক্ত হয় । এদেরকে টেক্সটপার্ট বলে ।

কারন:

ইংরেজি তে যখন কোনো এসএমএস পাঠানো হয় তখন প্রতিটি ক্যারেক্টার এর জন্য ৭ বিটস করে ডেটা কাউন্ট হয় । যখন ইউনিকোড ( বাংলা ) তে কোনো এসএমএস পাঠানো হয় তখন প্রতি ক্যারেক্টার ১৬ বিটস করে ডেটা কা্‌উন্ট হয় । মূলত বাংলা লিখতে হয়  ইউনিকোড Unicode Transformation Format (UTF) এবং এর জন্য এই বৈষম্যটা তৈরী হয় ।

এখন 1120 বিটস = একটি ম্যাসেজ হলে
English: 1120 bits / (7 bits/character) = 160 characters
Bangla: 1120 bits / (16 bits/character) = 70 characters

 

সুতরাং, ইংরেজিতে ১৬০ ক্যারেকটার ৭ বিটস্  (160 * 7 = 140 * 8 ) অপরদিকে বাংলাতে ১৬ বিটস্ তাই ( 70 * 16 = 140 * 8 )

 

এবার প্রশ্ন করতে পারেন তবে মাল্টি টেক্সপার্ট মানে ১৬০ এর বেশী ক্যারেক্টার ইংরেজিতে হলে কেন ১৫৩ টি ক্যারেক্টারে একটি ম্যাসেজের সমান টাকা কাটা হয় ।

কারন:

এটাকে Concatenated এসএমএস বলে, যখন ১৬০ এর বেশী ক্যারেক্টার হয় তখন ভাগ ভাগ হয়ে SMSC সার্ভারে মেসেজ টি যায় যা পূর্বেই বলেছি । যখন ম্যাসেজটি ১৬০ ক্যারেক্টার এর ছিলো তখন এর সাথে এক্সট্রা কোনো তথ্য SMSC তে প্রেরন করা হয় না । কিন্তু যখন ১৬০ এর বেশী হয় তখন এর সাথে user data header (UDH) এ কিছু অতিরিক্ত তথ্য প্রেরন হয় যেখানে থাকে প্রতিটা ম্যাসেজের অাইডেন্টিফিকেশন তথ্য মানে এই ম্যাসেজের পার্ট টা কোন ম্যাসেজের পার্ট এর পরে প্রেরন হবে এটা কোন এসএমএস এর অংশ এসব তথ্য । অার এই এক্সট্রা তথ্য এর জন্য 6 bytes (48 bits) জায়গা লাগে ।

ফলে,

1120 bits - 48 bits = 1072 bits

 

1072 bits / (7 bits/character) = 153 characters
1072 bits / (16 bits/character) = 67 characters

 

 

সুতরাং ক্যারেকটার কাউন্ট ভিন্ন হলেও মেশিন ল্যাঙ্গুয়েজে দুটিই সমান জায়গা দখল করে, যেহেতু জায়গা সমান তাই অক্ষর সংখ্যা ভিন্ন হলেও মূল্য সমান কাটা হয় ।


উদাহরন: যদি প্রতি ম্যাসেজের মূল্য ২০ পয়সা করে হয়
তবে অাপনি যদি একটি এসএমএস এ,

ইংরেজিতে ১৬০ ক্যারেক্টারের এসএমএস পাঠান তবে খরচ হবে ১৬০/১৬০ = ০.২ পয়সা, কিন্তু যদি অাপনি ১৬১ ক্যারেক্টারের এসএমএস পাঠান তবে ১৬১/১৫৩ =  1.045751633986928 যা ১ থেকে বড় এবং ১ এর পর পরবর্তী পূর্ন সংখা ২ সুতরাং ২ টি ম্যাসেজের সমান টাকা কাটবে । যদি

বাংলাতে যদি ৭০ ক্যারেক্টার পাঠান তবে একই ভাবে ৭০/৭০ = ১ টি এসএমএস, কিন্তু ৭০ এর বেশি যদি ৭১ কারেক্টারও পাঠান তবে ৭১/৬৭ = ২টি ম্যাসেজের এর সমান ।

এখানে লিস্ট দেওয়া হলো কত ক্যারেক্টার এর জন্য কত এসএমএস কাউন্ট হবে তার:

ইংরেজি:

  • 1 standard SMS message = up to 160 characters
  • 2 concatenated SMS messages = up to 306 characters
  • 3 concatenated SMS messages = up to 459 characters
  • 4 concatenated SMS messages = up to 612 characters
  • 5 concatenated SMS messages = up to 765 characters
  • etc. (153 x number of individual concatenated SMS messages)

বাংলা:

  • 1 standard SMS message = up to 70 characters
  • 2 concatenated SMS messages = up to 134 characters
  • 3 concatenated SMS messages = up to 201 characters
  • 4 concatenated SMS messages = up to 268 characters
  • 5 concatenated SMS messages = up to 335 characters

 

লিখেছেন

মো: জোবায়ের অালম

ফাউন্ডার, গ্রিনওয়েব বাংলাদেশ ।


Share This Post to Keep This Site Alive

Like FanPage: Like Post:

Comments

zaman

zaman (2018-01-27 12:02:55)

Thanks for nice tropics,

লিটন ইসলাম নাঈম

লিটন ইসলাম নাঈম (2018-01-02 13:08:01)

ভালো একটা বিষয় সম্পর্কে জ্ঞান অর্জন করলাম! ধন্যবাদ!

abu hasan

abu hasan (2018-08-29 19:40:47)

160 * 7 = 140 * 8 keno likhlen? বুঝলাম না. ইংলিশ এ কি ascii কোড ব্যাবহার হচ্ছে তাহলে সেটা ৮ বিট হবার কথা ছিলনা! একটু বুঝিয়ে বলবেন প্লিজ

Greenweb BD

Greenweb BD (2018-09-29 21:59:47)

English: 1120 bits / (7 bits/character) = 160 characters পোস্টে এটা দেওয়া অাছে যার মানে হলো ৭ বিট করে প্রতি ক্যারেক্টারে । English এর জন্য GSM-7 ইনকোড ব্যবহার করা হয় যে কারনে ৭ বিট = ১ ক্যারেক্টার ।
http://chadselph.github.io/smssplit/
As per GSM 03.40 we can send up to 140 octets (8-bit data), so if we send 7-bit data (septet) we can send up to 160 7-bit ASCII characters.
উপরের টার্মস অনুযায়ী (160 * 7 = 140 * 8) হয় মানে ( ১৬০ ascii/gsm-7 * 7bit = 140octets * 8 bit = 1120 bit sms = 160 characters
> ascii কোড ব্যাবহার হচ্ছে তাহলে সেটা ৮ বিট হবার কথা ছিলনা! উত্তর: An ASCII character in 8-bit ASCII encoding is 8 bits (1 byte), though it can fit in 7 bits. source: https://stackoverflow.com/questions/4850241/how-many-bits-in-a-character

Leave A Feedback


Captch(Enter the number on the below field): 427