Blog

Converting InPage Kashmiri Files to Unicode: A Practical Guide

Faizan Ayoub · 8 October 2026 · 7 min read

  • Kashmiri Unicode
  • Digitization
  • InPage
A handwritten folio of dense Sharada-script text on aged paper
A folio of Kalhana's Rajatarangini, the twelfth-century chronicle of Kashmir's kings, in Sharada script.Kalhana (text); scribe unknown, Public domain, source

Key takeaways

  • Much typed Kashmiri text exists only as InPage files in a proprietary encoding, which cannot be searched or used for language models until converted to Unicode.
  • The InPage-to-Unicode converters found were built for Urdu, and Kashmiri letters and vowel signs can be dropped, left as stray codes or replaced without warning.
  • Keep the original files, test one well-known page first, and check the stored code points, not just the on-screen look, for Kashmiri yeh, wavy hamza and stray characters.
Contents
  1. What InPage is and why so much Kashmiri text is locked in it
  2. How InPage's encoding differs from Unicode
  3. Why Kashmiri is the hard case
  4. Existing converters and their limits for Kashmiri
  5. A step-by-step workflow
  6. Checking the output: a Kashmiri checklist
  7. What we plan to build
  8. Sources

To turn a Kashmiri InPage (.inp) file into text you can use in Word, on the web or in a dataset, you run it through an InPage-to-Unicode converter and then check the output character by character. The second step matters more for Kashmiri than for Urdu: the converters we know of were built for Urdu, and Kashmiri-specific letters and vowel signs can be dropped, left as stray codes, or replaced with similar-looking Urdu characters without any warning.

This guide explains why that happens, what tools exist, and how to check a converted file. It is written for anyone with a folder of old Kashmiri .inp files: writers, publishers, teachers, archivists and people building Kashmiri language datasets.

What InPage is and why so much Kashmiri text is locked in it

InPage is a word processor and page-layout program made by Concept Software, a Delhi company. According to Wikipedia, it was first developed in 1994 for Pakistan's Urdu newspaper industry, using a licensed version of Monotype's Noori Nastaliq typeface. Its draw was that it could set Nastaliq, the hanging calligraphic style of the Perso-Arabic script, on screen and in print at a time when little else could. Wikipedia lists Kashmiri among the languages it is used for, alongside Urdu, Sindhi, Pashto, Balochi and others.

For Kashmiri, which is normally written in Perso-Arabic Nastaliq, that made InPage the practical choice for books, magazines, newspapers and teaching material for many years. The result is that a large share of typed Kashmiri text exists only as InPage files. Those files cannot be searched by a search engine, pasted cleanly into a modern editor, or used to train or evaluate a language model until they are converted.

How InPage's encoding differs from Unicode

Unicode gives every letter and mark a fixed code point. Kashmiri's ؠ is always U+0620 ARABIC LETTER KASHMIRI YEH, wherever it appears and whatever font displays it. Shaping (choosing the initial, medial or final form, and building Nastaliq ligatures) is the job of the font and the rendering engine, not of the stored text.

Older InPage files use a proprietary encoding of InPage's own. The Center for Language Engineering (CLE) at UET Lahore describes it simply as InPage's “own encoding scheme”, different from Unicode. As far as we could find, it is not publicly documented, so every converter depends on a mapping table that someone has worked out by hand. In the open-source table we inspected (described below), each InPage character is a two-byte code beginning with the byte 0x04, and the converter swaps each known code for a Unicode character.

Wikipedia reports that InPage 3, launched in 2008, is “Unicode based”, and that version 4.0 (January 2024) opens files from version 2.92 onwards. We could not find official documentation of how InPage 3 or 4 export Kashmiri text, so we do not make claims about it here. In practice, many archived files were created in earlier versions, or are only available as copies with no access to a current InPage licence, and those need a converter.

Why Kashmiri is the hard case

Kashmiri uses most of the Urdu alphabet plus several letters and vowel signs Urdu does not need. Some of them reached Unicode late. U+0620 KASHMIRI YEH and U+065F WAVY HAMZA BELOW were proposed in 2009 by Deborah Anderson, Roozbeh Pournader, Muzaffar Aazim and Kamal Mansour (WG2 N3673) and added in Unicode 6.0. The proposal also asked that the precomposed U+0673 ALEF WITH WAVY HAMZA BELOW be deprecated in favour of the sequence alef + U+065F, and the current Unicode names list marks U+0673 as deprecated.

CharacterCode pointUnicode noteCommon wrong substitute
ؠU+0620 KASHMIRI YEHKashmiri half ye / taler yeU+06CC Farsi yeh, U+06D2 yeh barree, or U+06CD (which Unicode says should not be used for this)
اٟU+0627 + U+065F WAVY HAMZA BELOWKashmiri vowel mark; can sit under several lettersMark dropped, or the deprecated U+0673
ٲU+0672 ALEF WITH WAVY HAMZA ABOVEBaluchi, KashmiriPlain alef U+0627, or alef + U+0654 hamza
ۄU+06C4 WAW WITH RINGKashmiriPlain waw U+0648
ٗU+0657 INVERTED DAMMAKashmiri, UrduOrdinary damma U+064F, or dropped

The “Unicode note” column quotes the annotations in the Unicode Arabic chart. The last column is what to look for, not a measured error rate. Even the language's own name, کٲشُر, contains U+0672, so an Urdu-only mapping can damage it. For a fuller tour of these characters, see our post on Kashmiri Unicode characters.

Existing converters and their limits for Kashmiri

As of October 2026, the converters we found fall into three groups.

  • CLE InPage to Unicode Converter v1.0. A free Windows desktop tool from the Center for Language Engineering, KICS, UET Lahore, released with a short user guide dated July 2012. CLE says it was built by modifying freely available source code from IT Duniya and calls it a “sample application”. You choose a folder and it writes a Unicode text file next to each InPage file, named filename_convert.txt. Its documentation is about Urdu and does not mention Kashmiri. We have not yet tested it on Kashmiri files.
  • Open-source libraries. One example is zanysoft/unicode-inpage-converter (PHP, MIT licence), which its README describes as an Urdu converter. We read its mapping table: none of the InPage codes in it maps to U+0620, U+065F, U+0672, U+0673 or U+06C4. Its conversion function replaces only the codes it knows, so any other code is passed through unchanged as a stray character instead of being flagged.
  • Web converters and browser extensions. Several sites and add-ons offer paste-in conversion. Most present themselves as Urdu tools and do not publish their mapping tables, so you cannot tell in advance how they treat Kashmiri characters.

None of this is a criticism of those projects. They were built for Urdu and do that job. The gap is that nobody says what happens to Kashmiri text, so you need to check it yourself.

A step-by-step workflow

  1. Keep the originals. Copy the .inp files into a working folder and never convert in place. Record where each file came from and who holds the rights.
  2. Pick a small test file first. Choose a page you know well, ideally one that uses ؠ, ٲ and vowel marks.
  3. Convert to plain Unicode text. Use the CLE tool or another converter and save as UTF-8 .txt. Plain text is easier to check than a Word file; you can move it into Word afterwards and set a Unicode Nastaliq font.
  4. Compare against the original. Open the InPage file (or a PDF or printout of it) beside the converted text and read the test page line by line.
  5. Run the checklist below on the test file. If it fails, fix the mapping or post-process with find-and-replace before converting the whole batch.
  6. Convert the rest, then spot-check. Check a sample of pages from each source, because different publishers used different fonts and habits.

Checking the output: a Kashmiri checklist

A file can look right in a Nastaliq font and still hold the wrong code points, so check what is stored, not only what is shown. In Python, unicodedata.name() on each character tells you exactly what you have; a text editor that shows code points works too.

  • Stray characters. Search for control characters, Latin-1 symbols or boxes. In converters that pass unknown codes through, these mark characters the table did not know.
  • Kashmiri yeh. Count U+0620. If a Kashmiri text has none, the converter has probably replaced it with U+06CC, U+06D2 or U+06CD.
  • Wavy hamza. Count U+065F and U+0672. If either is missing where the original shows it, the marks were dropped or flattened to plain alef or ordinary hamza.
  • Deprecated forms. Replace U+0673 with U+0627 followed by U+065F, as Unicode recommends.
  • Waw with ring and inverted damma. Check for U+06C4 and U+0657 against the original.
  • Mark order and doubles. Look for marks attached to the wrong letter, or repeated, which can happen when a converter handles each glyph separately.
  • Digits and punctuation. Confirm whether digits came out as Extended Arabic-Indic (U+06F0–U+06F9) and that the full stop is U+06D4 where the source used it.
  • Normalisation. Apply one Unicode normalisation form (NFC is usual) to the whole set, so the same word is stored the same way everywhere.

If you plan to use the converted text as training data, keep the checklist results with each file. A note such as “KASHMIRI YEH restored by hand” is useful to whoever uses the data next. Our Resource Hub collects Kashmiri datasets and tools that can help with the later steps.

What we plan to build

Our digitization section describes an InPage-to-Unicode converter as a planned tool: one that will map InPage's legacy character codes into standard, machine-readable Unicode, with Kashmiri characters treated as first-class rather than as an afterthought. It is not available yet, and we have no results to report. When it exists we intend to publish its mapping table openly so it can be checked and corrected, which is the thing missing from most tools today.

If you hold Kashmiri InPage files and are willing to share a sample page alongside a printout or PDF, that is exactly the material a Kashmiri-aware mapping table needs.

Sources

Speak Kashmiri?

Help us find where computer translation still fails Kashmiri. Mark 25 sentences, three translations each; your answers save as you go.

← All posts