Why do some old programs not display Unicode characters correctly?
General knowledgeAsked by Anonymous22 Oct 2026, 3:09 PM ISTUpdated
In one line
Old programs cannot show Unicode characters correctly because they were not designed to understand them.
Unicode — Character encoding standard The Unicode logo, representing the standard that covers all world scripts. Image: Wikipedia
The rule
Unicode is a standard that gives every character from every language a unique code, so computers can show and use them correctly.
Let's understand it simply
Imagine you have a box of crayons with only 16 colours. Now, someone gives you a drawing that uses 100 colours. You cannot match all the colours because your box is too small. Old programs are like that small crayon box. They were made when computers only needed to show English letters and a few symbols (like A–Z, 0–9, !, @, #). They used a system called ASCII (American Standard Code for Information Interchange), which only had codes for 128 characters. But Unicode has space for over 140,000 characters from all languages! Old programs do not know how to handle these new codes, so they show wrong symbols or empty boxes.
ASCII vs Unicode support
ASCII (Old)
Unicode (Modern)
Number of characters
128
140,000+
Languages supported
English only
All languages
Emoji support
No
Yes
Can show श्री, 你好, José?
No
Yes
How it works
Old programs use ASCII or other old encodings (ways to store letters as numbers).
ASCII can only handle basic English letters and symbols.
Unicode uses more bytes (computer memory units) and can represent any character from any language.
When an old program sees a Unicode code, it tries to read it as ASCII.
The program does not understand the extra bytes, so it shows strange symbols or question marks.
The story behind it
Before Unicode, each country or company made its own way to show special letters (like Hindi, Tamil, Chinese, etc.). This caused a lot of confusion. In the 1990s, computer scientists made Unicode to solve this. Now, one standard can show all languages together. But many old programs were made before Unicode became popular, so they do not support it.
Where you see it in real life
Old text editors (like Notepad from Windows 95): Hindi or Tamil text appears as random symbols.
Old websites: Names with special letters (like José or श्री) show as boxes or question marks.
SMS on old phones: Emoji or non-English letters show as empty squares.
Old printers: Printouts of Unicode text have garbage characters.
Old databases: Storing names in different languages leads to broken data.
Why it matters
Unicode lets people use computers in their own language (Hindi, Bengali, Tamil, etc.).
Modern websites, apps, and phones use Unicode to show emoji, names, and messages from around the world.
Exams and jobs may need you to handle data in many languages.
Unicode is the base for modern programming, web design, and data storage.
Common mistakes
Thinking all computers can show all letters: Only Unicode-aware programs can.
Believing ASCII and Unicode are the same: ASCII is a small part of Unicode.
Trying to open Unicode files in old programs: The text will not display correctly.
Remember it
Old programs speak only a small language (ASCII). Unicode is a big language. If the program does not know the big language, it cannot show all the words.
Check yourself
Why do old programs show question marks or boxes instead of Hindi or Chinese letters?
Because they do not understand Unicode and only know ASCII codes.
What is the main difference between ASCII and Unicode?
ASCII supports only 128 characters (English), Unicode supports all languages.
How does Unicode help people in India?
It lets computers display and use Indian languages like Hindi, Tamil, and Bengali.
Quick recap
Old programs use ASCII, which only supports basic English letters.
Unicode can represent all characters from all languages.
Old software cannot read Unicode codes, so it shows wrong symbols.
Modern apps and websites use Unicode for global communication.