When people first learn about Unicode, it sounds like a finished story: one universal standard that finally lets every script on earth coexist in the same file, the same database, the same web page. And for the most part, it works remarkably well. But anyone who has tried to display Hindi, Tamil, Japanese, or Chinese text across different devices knows the reality is messier. Unicode solved many problems, yet it carries genuine limitations that surface the moment you move beyond simple Latin text. Understanding these problems matters for librarians, cataloguers, and information professionals who build multilingual catalogues, digital repositories, and metadata records every day.

Table of Contents

A quick refresher on what Unicode actually encodes

Unicode assigns a unique number, called a code point, to every character. The key word is character, not glyph. A code point is the abstract identity of a letter or symbol; a glyph is its visible shape drawn by a font. This separation is the source of both Unicode’s power and many of its headaches. The same code point can look very different depending on the font, the language setting, and the rendering engine used to display it.

It also helps to remember the scale involved. The first version of Unicode was designed to fit into 16 bits, which allowed only 65,536 possible code points. This was later expanded to a 21-bit space spread across multiple “planes,” supporting over a million theoretical positions. As of recent versions, roughly 150,000 characters have actually been assigned. That history of starting small and expanding later explains several of the problems described below.

Challenges with CJK scripts

The most discussed limitation of Unicode involves the CJK scripts, an abbreviation for Chinese, Japanese, and Korean. These languages rely on Han characters, which are ideographic rather than alphabetic. Instead of a few dozen letters, they use tens of thousands of distinct characters, and the full count of historical and regional variants can approach or exceed 100,000.

Why the original 65,536 limit was a problem

When Unicode was confined to 16 bits, those 65,536 slots had to cover every script in the world. Reserving enough space for the enormous Han repertoire while still leaving room for Latin, Cyrillic, Arabic, Greek, and the Indic scripts was simply impossible. The designers faced a hard choice: either abandon the 16-bit goal or find a way to compress the number of CJK characters. They chose compression, and that decision created one of Unicode’s most debated features.

Han unification and its consequences

The solution was a process called Han unification. Many Han characters share a common historical root across Chinese, Japanese, and Korean, even though each language draws them with slightly different strokes. The Unicode authors decided to treat these regional shapes as different glyphs of the same grapheme and assign them a single shared code point. This kept the character count manageable.

The trade-off is significant. Because a Chinese reader, a Japanese reader, and a Korean reader may expect visibly different shapes for the same code point, plain Unicode text cannot always indicate which regional form is intended. To display the correct shape, a system needs extra information about the target language, the script variant, and sometimes even the region. On a web page this is handled by the HTML lang attribute, but in a plain text file, a database field, or a poorly tagged catalogue record, that context is often missing. The result is text that is legible but typographically “wrong” to native readers, which is a real concern when a library is preserving culturally accurate documents.

It is worth noting that Han unification was not imposed only by Western engineers. The effort was driven by an international group including experts from China, Japan, Korea, and Vietnam, and the participating delegations agreed on the unification rules. The technical limitation, rather than cultural carelessness, is what produces the displayed inconsistencies today.

Font rendering and compatibility issues

Even when the correct code points are stored, Unicode cannot guarantee that text appears correctly on screen. Encoding a character and rendering it are two separate jobs, and the rendering step depends on the font, the operating system, and the layout engine. This is where many practical failures occur.

When a font lacks the glyph

A font only contains glyphs for a limited set of code points. If a document uses a character the installed font does not support, the system shows a fallback symbol, commonly the empty rectangle nicknamed “tofu,” or a question-mark box. The text is technically stored correctly, but the reader sees nothing meaningful. Older browsers were a notorious source of this problem; early versions of Firefox, for instance, failed to render Indic fonts correctly even when the fonts were installed, displaying blank boxes for many glyphs.

The special difficulty of complex scripts

The Indic scripts make the rendering challenge especially clear. Unicode encodes the underlying letters of Devanagari, Bengali, Tamil, and similar scripts, but these languages combine consonants and vowels into conjunct forms and half-letters that look nothing like the simple sum of their parts. As one practical explanation puts it, Unicode is an encoding for letters, not for the combined glyphs that readers actually see.

Producing the right shape is the job of the rendering algorithm and the font, not the code points themselves. A consonant followed by a virama (the halant sign) may trigger a half-form, a stacked ligature, or a repositioned vowel mark. The W3C documentation on Indic scripts notes that the outcome of a consonant-virama-consonant sequence varies according to the characters, scripts, and fonts involved. A consonant cluster like क् + क can become a single fused ligature, क्क. If the font’s glyph substitution and positioning tables are incomplete, the text breaks visually. This is why a Bengali page might render perfectly in one font and turn into a jumble in another, a problem Indian users have reported for years across different operating systems.

The same complexity defeats environments that assume one character equals one fixed-width box. A long-standing limitation is that terminal applications still struggle to render Indic and Arabic scripts because their character-cell grid, inherited from 1970s hardware, cannot accommodate contextual shaping and non-linear glyph fusion. For developers building command-line tools for Indian languages, this remains an unsolved frustration.

Pan-Unicode fonts are not a complete answer

One might assume a single font covering all of Unicode would solve everything. In practice, fonts that try to cover every script tend to do each one poorly. Typographic conventions such as serif and sans-serif do not map across scripts, and complex scripts need real layout work rather than a bare collection of glyphs. As one font discussion observes, many pan-Unicode fonts neglect the heavy layout requirements and are meant only as last-resort fallbacks, not for typesetting actual paragraphs. Quality multilingual work usually still requires script-specific fonts, which complicates the dream of one universal file that looks right everywhere.

Multiple representations and normalization

Unicode often allows the same visible text to be encoded in more than one way. A letter with an accent, for example, can be stored as a single precomposed code point or as a base letter followed by a combining mark. Both produce identical output, but their byte sequences differ. To make comparisons reliable, Unicode defines normalization forms that convert text into a consistent representation before it is matched, sorted, or searched.

For information professionals this is not a trivial detail. If a catalogue stores one author’s name in a composed form and a search query arrives in a decomposed form, a naive system will fail to match them even though they look identical. Search, sorting, indexing, and de-duplication in a multilingual library system all depend on consistent normalization, and getting it wrong leads to silently missing records.

Security and spoofing problems

The huge range of Unicode characters introduces risks that plain ASCII never had. Because over a hundred thousand characters exist, many of them look almost identical. Latin “A”, Greek alpha, and Cyrillic “А” share nearly the same shape but have different code points. The Unicode Consortium’s own security report explains that where two different strings can be represented by the same sequence of glyphs, they are called homographs, and these enable visual spoofing.

This is the basis of homograph attacks, where a fraudulent web address uses lookalike characters to imitate a legitimate one. Encoding itself has also been a source of vulnerabilities; the same security report notes that the original use of UTF-8 was open to a canonicalization exploit involving non-shortest encoding forms, which had to be forbidden in a later version. Normalization can be abused too, with attackers using characters that collapse into forbidden symbols to slip past input filters. For anyone managing a public-facing digital library or repository, these are concrete reasons to validate and normalize incoming text carefully.

Why these limitations matter for information work

None of this means Unicode is a failure. It is one of the most successful standardisation efforts in computing history, and it makes genuine multilingual content development possible at all. But treating it as a magic solution leads to poor design decisions. A catalogue that stores correct code points can still display tofu boxes to users with the wrong fonts. A repository that ignores normalization can fail to retrieve records that clearly exist. A digitisation project that does not record language and regional context can lose the typographic identity of a CJK manuscript. The lesson is that encoding is only the first layer; fonts, rendering engines, normalization, and language metadata all have to cooperate for multilingual text to truly work.

What do you think? If a library digitises a rare Japanese manuscript, should it rely on plain Unicode text, or invest in language tagging and script-specific fonts to preserve the original character shapes? And in your own experience with Indian-language websites or documents, how often have you seen text break into boxes or broken conjuncts, and what do you think caused it?

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

References
  1. https://en.wikipedia.org/wiki/Han_unification
  2. https://bugzilla.mozilla.org/show_bug.cgi?id=356049
  3. https://ask.metafilter.com/158756/Multilingual-font-translation-issues
  4. https://www.w3.org/2002/Talks/09-ri-indic/indic-paper.html
  5. https://thottingal.in/blog/2026/03/22/complex-scripts-in-terminal/
  6. https://www.johndcook.com/blog/2010/01/16/disappointing-state-of-unicode-fonts/
  7. https://unicode.org/reports/tr36/tr36-8.html

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Information Processing & Retrieval

1 Intellectual Organisation of Information

  1. Intellectual Organisation of Information
  2. Meaning of Intellectual Organisation of Information
  3. Why IOI is Necessary?
  4. IOI in Indexing Systems
  5. IOI and Indexing Languages
  6. IOI in User Services
  7. IOI and Content Analysis
  8. Information Retrieval Systems – Changing Environment
  9. Future Trends

2 Indexing Languages–Part I – Concepts and Types, Subject Headings Lists and Thesauri

  1. Indexing and its Types
  2. Indexing Language
  3. Vocabulary Control
  4. Classification Schemes
  5. Subject Headings Lists
  6. Thesaurus
  7. Thesaurofacet
  8. Classaurus
  9. Sears List of Subject Headings
  10. Library of Congress List of Subject Headings

3 Indexing Languages–Part II- Classification Schemes

  1. Dewey Decimal Classification (DDC) Scheme
  2. Universal Decimal Classification (UDC) Scheme
  3. Library of Congress Classification (LCC) Scheme
  4. Colon Classification (CC) Scheme
  5. Bibliographic Classification (BC) Scheme
  6. Library Bibliographical Classification (BBK) Scheme
  7. Broad System of Ordering (BSO) Scheme
  8. Special Classification Systems

4 Indexing Systems and Techniques

  1. Indexing Principles and Process
  2. Pre-Coordinate Indexing Systems
  3. Post-Coordinate Indexing Systems
  4. Automatic Indexing
  5. Non-Conventional Indexing: Citation Indexing
  6. Web Indexing

5 Evaluation of Indexing Systems

  1. Purpose of Evaluation
  2. Levels of Evaluation
  3. Evaluation Criteria
  4. Recall and Precision
  5. Other Performance Measures
  6. Relevance
  7. Evaluation Methodology
  8. Evaluation Experiments

6 Principles and Evolution of Bibliographic Description

  1. Bibliographic Description: An Overview
  2. Scope and Objectives of Bibliographic Description
  3. Evolution of Bibliographic Description
  4. Ranganathan’s Principles
  5. ISBDs
  6. Bibliographic Formats
  7. Electronic Resource Description
  8. Models of Bibliographic Description
  9. Bibliographic Description: Entities, Attributes and Relationships

7 Rules for Bibliographic Description

  1. Bibliographic Description: Its Origin
  2. Development of Anglo-American Code
  3. The International Standard Bibliographic Description (ISBD)
  4. Impact of ISBD on Catalogue Codes
  5. Bibliographic Description for Non-Print Materials
  6. Guidelines for Bibliographic Description of Electronic Resources
  7. Guidelines for Bibliographic Description of Internet Resources
  8. Rules for Description of Electronic Resources in AACR2 Revision 2002

8 Standards for Bibliographic Record Format

  1. International Standard Bibliographic Description (ISBD)
  2. MARC Format
  3. UNIMARC
  4. Common Communication Format (CCF)
  5. Indian Standard

9 Metadata- MARC21-856 Field, Dublin Core, TEI

  1. MARC21 – 856 Field
  2. Dublin Core Metadata Initiative (DCMI)
  3. Text Encoding Initiative (TEI)
  4. Procedure of Electronic Resource Description

10 Norms and Guidelines for Content Development

  1. Introduction
  2. Needs and Guidelines
  3. Standards Related to Electronic Content
  4. W3C Recommendations
  5. Electronic Text Encoding and Interchange
  6. Dynamic Content

11 Introduction to HTML and XML

  1. World Wide Web and Markup Languages
  2. Standard Generalized Markup Language (SGML)
  3. HyperText Markup Language (HTML)
  4. Basic HTML Tags
  5. Linking
  6. URLs
  7. HTML and the Browser
  8. eXtensible Markup Language (XML)
  9. XML Syntax and Semantic Tags
  10. Document Type Definition (DTD)
  11. Implications of XML in Library and Information Activities

12 Web-based Content Development

  1. What can be done with World Wide Web?
  2. Hypertext, Hyperlink, and Hypermedia
  3. Hypertext Markup Language (HTML)
  4. Introduction to Dynamic HTML
  5. Web Interface to Database Linking
  6. Introduction to XML
  7. XML Document Design
  8. Multimedia Web Resources
  9. Web Servers
  10. Website Hosting
  11. Tools for Web Page Designing

13 Multilingual Content Development (Using Unicode)

  1. Character Representation in Computer
  2. American Standard Code for Information Interchange (ASCII)
  3. Indian Scenario and Indian Standard Code for Information Interchange (ISCII)
  4. UNICODE
  5. Web Content Development Through UNICODE
  6. Applications of UNICODE
  7. Applying UNICODE to the Libraries
  8. Problems Associated with UNICODE

14 ISAR Systems- Objectives, Types, Operations and Design

  1. Users and Their Information Needs
  2. Objectives of ISAR Systems
  3. Types of ISAR Systems
  4. Design of ISAR Systems
  5. Evaluation of ISAR Systems

15 Compatibility of ISAR Systems

  1. Need for Compatibility Among ISAR Systems
  2. Scope of Compatibility in ISAR Systems
  3. Areas of Compatibilities in ISAR Systems
  4. Principal Issues of Compatibility in ISAR Systems
  5. Compatibility of Online IR Systems
  6. Approaches Towards Compatibility in ISAR
  7. Quality Control and Compatibility

16 Intelligent Information Retrieval Systems

  1. Introduction
  2. Expert Systems
  3. Expert Systems for Information Processing and Retrieval
  4. Components of Expert Systems
  5. Knowledge Representation
  6. Knowledge Engineering
  7. Artificial Intelligence Based Decision Support Systems (DSS)
  8. Pattern Recognition

17 Information Retrieval Processes and Techniques

  1. Information Retrieval Systems
  2. Databases
  3. Information Retrieval Systems: Purpose, Components, and Functions
  4. Indexing and Information Representation
  5. Vocabulary Control
  6. Searching
  7. Information Seeking and User Interfaces
  8. Web Information Retrieval Systems
  9. Intelligent Information Retrieval

18 Information Retrieval Models and Their Applications

  1. Information Retrieval
  2. Information Retrieval Techniques
  3. Models Based on Input/Output
  4. Models Based on Theories and Tools

19 Search Strategies, Processes and Techinques

  1. Search File – An Essential Component
  2. Search Strategies and Pre-requisites
  3. Search Techniques
  4. The Information Search Process
  5. Online Searching
  6. How the Search Engines Work
  7. Common Search and Retrieval Features of Web Search Engines