ISCII code pages as Windows ANSI code pages?

by Michael S. Kaplan, published on 2005/10/28 11:01 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2005/10/28/486232.aspx


In Windows 2000, support for several of the ISCII (Indian Standard Code for Information Interchange) code pages was added to Windows:

ISCII Assamese 57006
ISCII Bengali 57003
ISCII Devanagari 57002
ISCII Gujarathi 57010
ISCII Kannada 57008
ISCII Malayalam 57009
ISCII Oriya 57007
ISCII Panjabi 57011
ISCII Tamil 57004
ISCII Telugu 57005

It happened in the same release of Windows that support for some of these Indic languages was first added (more were added in XP, still more in XP SP2, with the final ones being added in Vista.

It leads people to occasionally ask the question that Bob Eaton asked this morning on the Unicode List:

Does anyone know whether (or why not) it is possible to use the ISCII
Devanagari code page (57002) as the default system code page in Windows?

That is, there is no code page support for "Ansi" Devanagari, but with the
ISCII encoding having code page support, why didn't they associate it with
Ansi programs associated with the Hindi locale (c.f. cp. 932 with JIS) ?

The ISCII encoding seemed like a logical choice... but it wasn't used...

The answer to the first question is that no you can't, because it is technically impossible. The ANSI and OEM code pages on Windows can act as the ACP and OEMCP for a locale (and the CP_ACP and CP_OEMCP of a default system locale. In order for a code page to be used there it has to be a table-based code page that can be used in both kernel and user modes, not one of "DLL-based" ones that are in the 5xxxx range. And the conversion between ISCII and Unicode is not the simple affair that can be done with a table, it requires a more algorithmic approach....

Additionally, the ANSI Win32 API code throughout Windows has (in many places) a solid "no bigger than two bytes per character" bias, such that any attempt to add a code page that could ever be more than that is not technically possible without updating a great deal of code, code that is provided mainly for backwards compatibility.

So it would have been a logical choice, had it been possible. Unfortunately, it was not. All of these code pages are provided to help move people in India using them to Unicode by allowing them to convert their legacy data....

 

This post brought to you by "" (U+0960, a.k.a. DEVANAGARI LETTER VOCALIC RR)


# Michael S. Kaplan on 1 Nov 2005 10:43 AM:

This is an experiment, feel free to disregard.

# Michael S. Kaplan on 1 Nov 2005 10:43 AM:

This is an experiment, feel free to disregard.

# Michael S. Kaplan on 1 Nov 2005 10:43 AM:

This is an experiment, feel free to disregard.

# Michael S. Kaplan on 1 Nov 2005 10:43 AM:

This is an experiment, feel free to disregard.

# Michael S. Kaplan on 1 Nov 2005 10:43 AM:

This is an experiment, feel free to disregard.

# Michael S. Kaplan on 1 Nov 2005 10:43 AM:

This is an experiment, feel free to disregard.

# Michael S. Kaplan on 1 Nov 2005 10:44 AM:

This is an experiment, feel free to disregard.

# Michael S. Kaplan on 1 Nov 2005 10:44 AM:

This is an experiment, feel free to disregard.

# Michael S. Kaplan on 1 Nov 2005 10:44 AM:

Ok, now we wait and I'll let you know what the experiment results are in a few days....

Anurag Rana on 28 Jan 2012 3:02 AM:

I have downloaded Hindi LIP and able to change my Display language but not available in System locale of Window 7 ? How to Do that ? However come to know that beacause ansi code page is 0 and oem code page is 1 for Hindi. How to resolve this problem ?

Michael S. Kaplan on 28 Jan 2012 4:55 PM:

It cannot be done. Unicode-only locales cannot ever be default system locales....


go to newer or older post, or back to index or month or day