Bijoy vs Avro vs Unicode
Two things cause almost all Bengali text problems: mixing encodings, and the widespread belief that Avro is an encoding. Both are explained here, with the parts that actually bite.
The one-paragraph version
Bengali does not have a font problem, it has an encoding problem. Unicode is the standard. Avro is a way of typing that outputs Unicode. Bijoy is a legacy encoding from 1988 that a lot of government and publishing infrastructure still speaks. When you move text between these, you need a converter — installing a different font will not help, and switching to Unicode will not recover bytes that were already mis-stored.
What each one really is
Unicode
The standard that the web, Word, Google Docs, email and essentially every modern database use. Bengali occupies U+0980–U+09FF. If your text is Unicode, it is portable and you can stop thinking about this.
Avro — an input method, not an encoding
This is the distinction that trips up nearly everyone. Avro is a phonetic input method: you type English letters and it produces Bengali. Its output is already Unicode.
So there is no such thing as “Avro-encoded text” needing conversion. When someone searches for an Avro to Unicode converter, their text is nearly always Bijoy bytes that they have mistaken for an Avro problem — which is why search results for that phrase are full of blog posts, forum threads and app-store listings rather than a tool that does the obvious thing.
Bijoy — the legacy encoding
From 1988, mapping Bangla letters to its own code points rather than to Unicode. It is commercial software, which is why it was never open and why Linux distributions do not ship it. It persists because government forms, newspaper systems and printing pipelines were built on it, and they are still in use.
One quirk worth knowing if you write code against it: Bijoy stores vowel signs
before the consonant, not after. The Bengali আমি is
Avwg, where wg is the মি cluster reordered. Any
converter that does not reverse this on the way back will produce subtly wrong text that
still renders, which is the worst kind of bug.
Boishakhi and SomewhereIn
Two more legacy schemes. Boishakhi turns up in older archived documents; SomewhereIn is a phonetic scheme still used by some publishers and DTP operators. They overlap heavily with Bijoy, which is why a Bijoy converter sometimes produces readable output from Boishakhi input — and why mixed documents sometimes need a second pass.
How to decide what you have
- Boxes or
?marks → legacy bytes in a Unicode program. - A short Latin string like
bvAbw→ Bijoy. - Readable but wrong letters → Boishakhi or SomewhereIn.
- Meaningless English letters → raw Avro keystrokes. Not an encoding problem.
Practical advice
- New projects: use Unicode. Everything downstream works.
- Old documents: convert on import. Convert once, at the boundary.
- Databases: store Unicode, and record the source encoding if you also need to write back to a legacy system.
- Never pick a converter by its interface. Paste a short known string and confirm the output is actually Bengali. Several widely-linked converters have a button that returns the input unchanged.
Convert with the Bijoy, Avro, Boishakhi and SomewhereIn converter — it runs entirely in your browser, so nothing is uploaded.
এক বাক্যে
বাংলার সমস্যা ফন্টের নয়, এনকোডিং-এর। ইউনিকোড হলো মান। অভ্র হলো এমন একটি টাইপিং পদ্ধতি যার ফলাফল ইউনিকোডই। বিজয় হলো ১৯৮৮ সালের একটি পুরোনো এনকোডিং, যেটা অনেক সরকারি ও প্রকাশনা অবকাঠামো এখনো ব্যবহার করে। এগুলোর মধ্যে লেখা সরালে রূপান্তর দরকার — অন্য ফন্ট বসালে হবে না।
প্রতিটি আসলে কী
ইউনিকোড
ওয়েব, Word, Google Docs, ইমেইল ও প্রায় প্রতিটি আধুনিক ডেটাবেস যা ব্যবহার করে। বাংলা রয়েছে U+0980–U+09FF পরিসরে। লেখা ইউনিকোড হলে সব জায়গায় চলবে।
অভ্র — ইনপুটমেথড, এনকোডিং নয়
এটিই সবচেয়ে বেশি গুলিয়ে যাওয়া বিষয়। অভ্র একটি ফনেটিক ইনপুটমেথড: ইংরেজি অক্ষরে টাইপ করলে বাংলা বের হয়। ফলাফল ইতিমধ্যেই ইউনিকোড।
তাই “অভ্র-এনকোড করা লেখা” নামে কিছু নেই। কেউ অভ্র টু ইউনিকোড কনভার্টার খুঁজলে বাস্তবে তার লেখা বিজয় বাইট, যেটাকে সে অভ্র-র সমস্যা ভাবছে — তাই ওই শব্দটির ফলাফলে ব্লগ পোস্ট আর ফোরাম থ্রেডের ভিড় দেখা যায়, কারণ কেউ কাজের টুল বানায়নি।
বিজয় — পুরোনো এনকোডিং
১৯৮৮ সালের, ইউনিকোডের বদলে নিজস্ব কোড পয়েন্টে মানচিত্র বানায়। এটি বাণিজ্যিক সফটওয়্যার, তাই কখনো ওপেন সোর্স হয়নি এবং লিনাক্সে পাওয়া যায় না। তবু টিকে আছে কারণ সরকারি ফর্ম, পত্রিকা ও প্রিন্টিং ব্যবস্থা এর ওপর তৈরি হয়েছে।
কোড লিখলে জানা দরকার একটি বিশেষত্ব: বিজয় কার-চিহ্নকে কনসোন্যান্টের
আগে রাখে। বাংলা আমি হয় Avwg, যেখানে wg
হলো বদলানো মি। ফেরার পথে এই ক্রম না উলটো করলে লেখা সূক্ষ্মভাবে ভুল হয় কিন্তু
তবু দেখা যায় — এটাই সবচেয়ে খারাপ ধরনের বাগ।
বৈশিষ্ট্য ও সোমহোরইন
আরও দুটি পুরোনো পদ্ধতি। বৈশিষ্ট্য পুরোনো নথিতে পাওয়া যায়, সোমহোরইন কিছু প্রকাশনা ও ডিটিপি জগতে এখনো ব্যবহৃত। এগুলো বিজয়ের সাথে অনেকটা মিল, তাই বিজয় কনভার্টার মাঝে মাঝে বৈশিষ্ট্য লেখা থেকেও পাঠযোগ্য ফল দেয় — আর মিশ্র নথিতে কখনো কখনো দুই ধাপ লাগে।
আপনার কাছে কী আছে তা বুঝে নিন
- বাক্স বা
?চিহ্ন → ইউনিকোড প্রোগ্রামে পুরোনো বাইট। bvAbwটাইপ ছোট লাতিন স্ট্রিং → বিজয়।- পড়া যায় কিন্তু অক্ষর ভুল → বৈশিষ্ট্য বা সোমহোরইন।
- অর্থহীন ইংরেজি অক্ষর → কাঁচা অভ্র কি-প্রেস। এনকোডিং সমস্যা নয়।
ব্যবহারিক পরামর্শ
- নতুন কাজ: ইউনিকোড ব্যবহার করুন। পরের সবকিছু কাজ করে।
- পুরোনো নথি: ইমপোর্টের সময় রূপান্তর করুন। সীমানায় একবার।
- ডেটাবেসে ইউনিকোড রাখুন, আর পুরোনো সিস্টেমে ফেরত লিখতে হলে মূল এনকোডিং লিখে রাখুন।
- চেহারা দেখে কনভার্টার বাছবেন না। একটি ছোট পরিচিত স্ট্রিং দিয়ে দেখুন ফলাফল সত্যিই বাংলা কিনা। অনেক বেশি লিংক পাওয়া কনভার্টারে এমন একটি বাটন আছে যা ইনপুট অপরিবর্তিত ফেরত দেয়।
বিজয়, অভ্র, বৈশিষ্ট্য ও সোমহোরইন কনভার্টার দিয়ে রূপান্তর করুন — এটি সম্পূর্ণ ব্রাউজারেই চলে, কিছু আপলোড হয় না।
Questions people actually ask
Is Avro the same thing as Bijoy?
No, and this is the single most common misunderstanding. Avro is a phonetic input method — you type English letters and it produces Bengali, and its output is already Unicode. Bijoy is a legacy encoding from 1988 that maps Bangla letters to its own code points. There is nothing to convert if your text was typed with Avro; there is plenty to convert if it is Bijoy bytes.
অভ্র কি বিজয়ের মতোই?
নয়, এবং এটিই সবচেয়ে সাধারণ ভুল ধারণা। অভ্র একটি ফনেটিক ইনপুটমেথড — ইংরেজি অক্ষরে টাইপ করলে বাংলা বের হয়, আর ফলাফল ইতিমধ্যেই ইউনিকোড। বিজয় ১৯৮৮ সালের একটি পুরোনো এনকোডিং, যা নিজস্ব কোড পয়েন্টে মানচিত্র বানায়। অভ্র কীবোর্ডে লেখা লেখায় রূপান্তরের দরকার নেই; বিজয় বাইটে রূপান্তর দরকার।
Why does my Bengali text turn into boxes or Latin gibberish?
Because the text is encoded as Bijoy (or another legacy scheme) and the software reading it expects Unicode. Each legacy byte then maps to whatever character sits at that code point in Unicode, which is why the output is deterministic and always looks the same. It is an encoding mismatch, not a broken font — installing a different font will not fix it.
বাংলা লেখা বাক্স বা লাতিন গুঞ্জলে পরিণত হয় কেন?
কারণ লেখাটি বিজয় (অথবা অন্য পুরোনো পদ্ধতিতে) এনকোড করা, কিন্তু সফটওয়্যারটি ইউনিকোড আশা করছে। তখন প্রতিটি পুরোনো বাইট ইউনিকোডে ওই কোড পয়েন্টের যে অক্ষর আছে সেটিই দেখায়, তাই ফলাফল নির্দিষ্ট ও সবসময় একই রকম। এটি ফন্টের সমস্যা নয়, এনকোডিংয়ের অমিল — অন্য ফন্ট বসালে ঠিক হবে না।
Is my text uploaded anywhere?
No. The entire conversion runs as JavaScript inside the page. Your text is never sent to a server, which is why it is safe to paste confidential drafts, client documents or anything under an NDA — and why the tool keeps working if your connection drops.
আমার লেখা কোথাও আপলোড হয় কি?
নয়। পুরো রূপান্তরটি এই পাতার ভেতরেই JavaScript দিয়ে চলে। আপনার লেখা কোনো সার্ভারে যায় না, তাই গোপন খসড়া বা ক্লায়েন্টের নথি নিরাপদে পেস্ট করা যায় — সংযোগ চলে গেলেও কাজ চলতে থাকে।
Why does my Bijoy text look like meaningless Latin letters?
Because Bijoy is a different alphabet as far as your software is concerned. A string like bvAbw is not corrupted English — it is correctly encoded Bengali. Once converted to Unicode it reads normally. That is also why converting Bijoy gives a short string back: it is one byte per character.
বিজয় লেখা অর্থহীন লাতিন অক্ষরের মতো কেন দেখায়?
কারণ আপনার সফটওয়্যারের কাছে বিজয় মানে সম্পূর্ণ ভিন্ন বর্ণমালা। bvAbw টাইপ স্ট্রিংটি ক্ষতিগ্রস্ত ইংরেজি নয় — সঠিকভাবে এনকোড করা বাংলা। ইউনিকোডে রূপান্তর করলে স্বাভাবিকভাবে পড়া যায়। রূপান্তরে ছোট স্ট্রিং ফেরত আসার কারণও এটাই — প্রতি অক্ষরের জন্য এক বাইট।
The output is Bengali but the characters are in the wrong order. Why?
Bijoy stores vowel signs before the consonant, not after, so আমি is stored as Avwg. A correct converter reverses that ordering on the way back. If yours does not, you get subtly wrong text that still renders — which is worse than obvious garbage because you may not notice. This is why a round trip is the real test of a converter.
ফলাফল বাংলা, কিন্তু অক্ষরের ক্রম ভুল। কেন?
বিজয় কার-চিহ্ন কনসোন্যান্টের আগে রাখে, পরে নয়, তাই আমি লেখা থাকে Avwg হিসেবে। সঠিক কনভার্টার ফেরার পথে সেই ক্রম উলটো করে দেয়। আপনারটা না করলে সূক্ষ্মভাবে ভুল লেখা পাবেন যা তবু দেখা যায় — যেটা স্পষ্ট গিজবিজের চেয়ে খারাপ, কারণ খেয়াল নাও করতে পারেন। তাই কনভার্টার আসলে ঠিক কিনা তার পরীক্ষা হলো গোলাকার ফেরৎ।
My text is already readable Bengali but wrong. What is that?
Usually Boishakhi or SomewhereIn rather than Bijoy. Those two legacy schemes overlap heavily with Bijoy, so a Bijoy converter sometimes produces readable output — but not always the right letters. Try the other legacy converter. Documents from old systems are often mixed, in which case converting twice can help.
আমার লেখা পড়া যাচ্ছে, কিন্তু ভুল। এটা কী?
সাধারণত বৈশিষ্ট্য বা সোমহোরইন, বিজয় নয়। ওই দুটি পুরোনো পদ্ধতি বিজয়ের সাথে অনেকটা মিলে যায়, তাই বিজয় কনভার্টার কখনো কখনো পাঠযোগ্য ফল দেয় — তবে সবসময় সঠিক অক্ষর নয়। অন্য পুরোনো কনভার্টারটি চেষ্টা করুন। পুরোনো সিস্টেমের নথি প্রায়ই মিশ্র থাকে, সেক্ষেত্রে দুইবার রূপান্তর করলে কাজ হয়।
Do I need to install anything?
Not for this tool. It is a web page and needs only a browser. Installing fonts matters separately: once your text is Unicode it needs a Bengali-capable font to render. Windows ships Nirmala UI; on Linux install fonts-beng or fonts-noto-beng, otherwise Chromium-based apps show empty boxes even when the text underneath is correct.
কিছু ইনস্টল করতে হবে কি?
এই টুলের জন্য নয়। এটি একটি ওয়েব পাতা, শুধু ব্রাউজার লাগে। ফন্ট আলাদা বিষয়: লেখা ইউনিকোড হওয়ার পর সঠিকভাবে দেখাতে বাংলা-সক্ষম ফন্ট দরকার। উইন্ডোজে Nirmala UI আসে; লিনাক্সে fonts-beng বা fonts-noto-beng ইনস্টল করুন, নইলে লেখা ঠিক থাকলেও ব্রাউজারে খালি বাক্স দেখাবে।
Do you have an API?
Not yet. The conversion engine itself is plain JavaScript and works offline once the page has loaded, so you can copy the engine into your own project if you need programmatic conversion. For a hosted API, check back later.
আপনাদের কি API আছে?
এখনো নেই। রূপান্তর ইঞ্জিনটি সাধারণ JavaScript, পাতা একবার লোড হলেই অফলাইনেও কাজ করে, তাই প্রয়োজন হলে আপনি ইঞ্জিনটি নিজের প্রজেক্টে নিয়ে ব্যবহার করতে পারেন। হোস্টেড API এখনো নেই।