We use cookies to improve performance and measure site usage. By clicking Accept Cookies, you agree to analytics cookies. See our Privacy Policy.

We are always improving TypeNepal with features and updates. See What's new.

Back to Blog
Fonts & Unicode

What is Devanagari Unicode? A Complete Technical Guide

UC

Umesh Chapagain

June 1, 2026 · 5 min read · Founder & Lead Developer

#unicode#devanagari#character encoding#UTF-8#technical guide

Unicode is the foundation of modern digital text. For speakers and writers of Nepali, Hindi, Sanskrit, Marathi, and other languages that use the Devanagari script, understanding Unicode is essential for creating content that works everywhere — on every device, in every application, and across every platform.

This guide provides a thorough technical explanation of how Devanagari Unicode works, its structure, character ranges, and practical implications for developers and content creators.

What is Unicode?

Unicode is a universal character encoding standard maintained by the Unicode Consortium. It assigns a unique number — called a code point — to every character in every writing system used in the world. As of Unicode 15.1 (2023), the standard includes over 149,000 characters covering 161 scripts.

Before Unicode, different regions and languages used incompatible encoding systems. In Nepal, Preeti, Kantipur, and PCS Nepali each used their own proprietary mapping. The same byte value could represent different characters in different fonts, making document sharing unreliable. Unicode solved this by creating a single, universal mapping.

The Devanagari Unicode Block

The primary Devanagari block in Unicode occupies code points U+0900 to U+097F (128 positions). This block contains all the characters needed to write Nepali, Hindi, Sanskrit, and most other Devanagari-script languages.

Character Categories

Vowels (स्वर): Independent vowel forms used at the beginning of words.

  • अ (U+0905), आ (U+0906), इ (U+0907), ई (U+0908), उ (U+0909), ऊ (U+090A)
  • ए (U+090F), ऐ (U+0910), ओ (U+0913), औ (U+0914)

Consonants (व्यञ्जन): The core consonant characters.

  • क (U+0915) through ह (U+0939)
  • The traditional arrangement follows the varga (group) system

Dependent Vowel Signs (मात्रा): Marks attached to consonants to change the vowel sound.

  • ा (U+093E), ि (U+093F), ी (U+0940), ु (U+0941), ू (U+0942)
  • े (U+0947), ै (U+0948), ो (U+094B), ौ (U+094C)

Virama/Halant (हलन्त): The character ् (U+094D) is used to suppress the inherent "a" vowel of a consonant, enabling conjunct formation.

Anusvara and Visarga:

  • Anusvara ं (U+0902) — nasalization
  • Visarga ः (U+0903) — aspiration
  • Chandrabindu ँ (U+0901) — nasalization

Devanagari Numerals:

  • ० (U+0966) through ९ (U+096F)

Extended Devanagari Block

An additional block at U+A8E0 to U+A8FF provides supplementary characters including cantillation marks and additional signs used in Vedic Sanskrit. Most Nepali content does not need these characters.

How Conjuncts Work in Unicode

One of the most important aspects of Devanagari Unicode is how it handles conjunct consonants (संयुक्त अक्षर). Unlike in some legacy fonts where conjuncts were stored as single characters, Unicode represents conjuncts as a sequence of characters:

Consonant + Halant (्) + Consonant

For example:

  • क्ष = क (U+0915) + ् (U+094D) + ष (U+0937)
  • त्र = त (U+0924) + ् (U+094D) + र (U+0930)
  • ज्ञ = ज (U+091C) + ् (U+094D) + ञ (U+091E)

The rendering engine (in the browser, operating system, or application) reads this sequence and displays the appropriate conjunct glyph. This approach is more flexible than storing pre-composed conjuncts because:

  1. It keeps the encoding simple and consistent
  2. Font designers can create their own visual representations
  3. Text searching and processing work on the component characters

UTF-8: How Unicode is Stored

Unicode defines what each character is. UTF-8 defines how those characters are stored as bytes in computer memory and files.

UTF-8 is the dominant encoding on the web. It uses:

  • 1 byte for ASCII characters (English letters, numbers)
  • 2 bytes for most Latin extended characters
  • 3 bytes for Devanagari characters (U+0900–U+097F)

This means a Nepali character takes 3 bytes in UTF-8, compared to 1 byte for an English character. When saving documents, always specify UTF-8 encoding to ensure Nepali text is preserved correctly.

Verifying Encoding

To check if your file is properly UTF-8 encoded:

  • In a text editor: Look for encoding settings in the save/open dialog
  • In the browser: Right-click → View Page Source → check the <meta charset="UTF-8"> tag
  • In a terminal: Use the file command on Unix/macOS

Why Unicode Matters for Nepali Content

Searchability

Search engines index Unicode text. If your website, blog, or document contains Unicode Nepali, it will appear in search results when users search for Nepali terms. Legacy-encoded text (Preeti, Kantipur) is invisible to search engines.

Cross-Platform Compatibility

Unicode Nepali text displays correctly on:

  • All modern operating systems (Windows, macOS, Linux, Android, iOS)
  • All web browsers (Chrome, Firefox, Safari, Edge)
  • All messaging apps (WhatsApp, Viber, Messenger)
  • All social media platforms (Facebook, Twitter, Instagram)
  • All email clients (Gmail, Outlook, Yahoo)

Data Processing

Unicode text can be sorted, searched, filtered, and processed programmatically. This is essential for databases, content management systems, and any application that handles Nepali text.

Accessibility

Screen readers and assistive technologies can interpret Unicode text correctly, making content accessible to users with disabilities.

Practical Tips for Developers

If you are building a website or application that handles Nepali text:

  1. Always use UTF-8 encoding — set <meta charset="UTF-8"> in HTML and use UTF-8 for database connections
  2. Choose Unicode-compliant fonts — Noto Sans Devanagari, Hind, Mukta are excellent choices. Preview and download from our Fonts page
  3. Use CSS @font-face properly — our CSS Generator can create the declarations for you
  4. Test conjunct rendering — verify that complex characters like क्ष, त्र, ज्ञ display correctly across browsers
  5. Handle text input correctly — use the lang="ne" attribute for Nepali text elements
  6. Generate proper unicode-range — use our Unicode Range Generator for optimized font loading

Frequently Asked Questions

What is the difference between Unicode and UTF-8? Unicode is the standard that defines character codes. UTF-8 is the encoding format that stores those codes as bytes. UTF-8 is the most common implementation of Unicode.

Can I type Unicode Nepali without special software? Yes. Use our Easy Nepali Typing tool for browser-based romanized input, or enable Nepali input in your operating system settings.

How do I convert legacy fonts to Unicode? Use our Preeti to Unicode and other Font Converters for instant conversion.

Is Unicode the same for Nepali and Hindi? Both languages use the same Devanagari Unicode block (U+0900–U+097F). The characters are identical; only the language and vocabulary differ.

Conclusion

Devanagari Unicode is the definitive standard for digital Nepali text. Understanding how it works — from code points and character blocks to UTF-8 encoding and conjunct formation — helps you create robust, accessible, and future-proof Nepali content. Whether you are a developer building a Nepali application, a content creator writing for the web, or a government official digitizing records, Unicode is the foundation you need.

UC

Umesh Chapagain

Founder & Lead Developer

Umesh Chapagain is the founder of TypeNepal and a software engineer with extensive experience in building web applications for language accessibility. He specializes in Unicode standards, Devanagari typography, and browser-based tool development. His work focuses on creating free, privacy-first tools that make Nepali and Hindi digital communication accessible to everyone — from students and professionals to the global Nepali diaspora.

Related Articles