You are here: Home > General Resources > Developing Punjabi Applications

Developing Punjabi Applications

This article is aimed at programmers wishing to develop Unicode enabled applications - specifically in Punjabi.

Operating Systems

If you wish to develop Unicode Gurmukhi applications on anything older than Windows XP - forget it! Only Windows XP and newer support Unicode Gurmukhi natively in applications. Only consider creating Unicode Gurmukhi applications if virtually all of your user base uses Windows XP (or anything newer). Although Windows 2000 has support for Unicode, it does not contain the required version of the Uniscribe DLL that supports Gurmukhi. You may consider upgrading the Uniscribe DLL to the one that accompanies Windows XP but this is in no way supported by Microsoft.

Under Linux, GTK+ 2 uses Pango to render text which means any programs created using GTK+ 2 should render Unicode Gurmukhi correctly. Gnome 2.4 and above (possibly earlier versions too) have been tested and support Unicode Gurmukhi when appropriate fonts have been installed.

Mac OS 10.2 (Jaguar) and above supports Unicode Gurmukhi.

C++ Issues

If you are familiar with programming with Unicode in C++ you probably don't need to read this.


Make sure you #define _UNICODE to ensure that any APIs that have both ANSI and Unicode versions default to the Unicode version. Alternatively, under Windows, you can explicitly call the wide (Unicode) versions of the Win32 APIs by adding a W to the end of the function name.

wchar_t and std::wstring

If you are using the char data type this must be changed to wchar_t. Do not take wchar_t to mean 16 bits or 32 bits and if you are using strings widely, we recommend you use std::wstring instead.

String Literals - L or _T()

Use L in front of string literals to ensure that they are Unicode. For example: L"Hello World!\n". Alternatively if you have defined _UNICODE you can use _T("Hello World!\n").

.NET & Mono Issues

Both .NET and Mono use Unicode natively and as such require no special adjustment to use Unicode Gurmukhi. However be aware that the rendering of Gurmukhi is dependent on the underlying operating system.

Visual Basic Issues

Visual Basic 6 does not support Unicode very well at all. You should upgrade to VB .NET if you wish to use Unicode Gurmukhi.