Bản tiếng Việt

Site in Vietnamese

Vietnamese Multilingual Keyboard Driver for Windows


WinVNKey’s History


WinVNKey stands for Windows-based Vietnamese Keyboard driver, a piece of Windows system software that extends the operating system capability to support typing Vietnamese letters, and recently, typing Han Nom characters as well as other international characters.  It was first developed in 1992 by the TriChlor Software Group in an effort to demonstrate that it was possible to design an eight-bit character set for Vietnamese that worked across platforms.


Windows 3.1 was released just a year before, namely in 1991. Vietnamese software developed for Windows 3.1 was very scarce because Windows development was then very difficult. WinVNKey 1.x, released into the public domain in 1992, quickly captured a large number of users all over the world for its simple graphical user interface design and an intuitive typing method called VIQR.  WinVNKey has since evolved into a multilingual keyboard driver. The latest release is version 5.0, which attracts a large number of non-Vietnamese users for its ability to allow them to type many national characters on any Latin-based keyboard.


WinVNKey 1.x


The highest credit should go to the lead developer Cường Tấn Nguyễn. He was then a graduate student in Electrical Engineering at Stanford University, California. Other active contributors were Châu , Cương Minh Bùi, Học Ðình Ngô, Tom T. Trương. Châu, working at  Microsoft, provided help with programming efforts. Cương and Tom contributed technical details. Dr. Học contributed an elegant composition algorithm that was extremely fast and very compact in size.  A number of  people participated in designing VISCII fonts. Of the seven basic VISCII fonts originally released for WinVNKey 1.x , five True Type fonts (Minh Quân, Hoàng Yến, Phương Thảo, Tha Hương, U Hoài) were designed by Cương Bùi, one True Type font (Heo May) by Cường Nguyễn, and one system font (System VISCII 1.1) by Học, Cường, and members of the Vietnamese Professional Society (VPS).


Shortly after release 1.1, Hùng Phước Hồ led a massive effort over the Internet to design hundreds of VISCII fonts that were named mostly after flowers and prefixed with the first two initials of VISCII (e.g., VI Thien Ly, VI Anh Dao, etc). These fonts helped publicize WinVNKey and the VISCII character set to Vietnamese users all over the world.


WinVNKey 2.x


After Cường graduated and accepted a position at HongKong University in 1993, the project was passed on to Vượng Doãn Nguyễn, a passionate Windows software programmer in the Silicon Valley. Vượng made significant contributions in improving the user interface, adding new features such as hỏi/ngã (hook-above/tilde) lookup, Vietnamese codepage conversion, and Vietnamese screen viewer. Under his tenure WinVNKey went through a number of 2.x releases, which supported both 16-bit and 32-bit platforms like Windows 3.1, Windows 95, Windows NT 3.5x/4.


WinVNKey 3 & 2000


TriChlor was reinforced in 1997 with Thư Nguyễn, another energetic Windows software engineer. He soon became responsible for the redesign of  the WinVNKey user interface and support for Unicode. The cooperation between Thư and Vượng culminated in WinVNKey 3 and WinVNKey 2000, which was able to support Unicode in a limited number of applications.


WinVNKey 4


Meanwhile, Dr. Học Ðình Ngô has been working on Unicode support for Unix/Linux-based network attached storage devices at Quantum corporation since 2001.  Having developed a public-domain Vietnamese keyboard driver for the Macintosh (MacVNKey) in 1995 that supported a variety of flexible typing methods,  he decided to take over WinVNKey development to push it to another level of performance and features.  He ported the MacVNKey engine to WinVNKey, redesigned the GUI and the engine to support Unicode character typing in both legacy and new Windows applications.  Then he reworked the engine into a framework to support not only VISCII but also other character sets.  His big efforts transformed WinVNKey into a multilingual product that could support all character sets currently available in the world, including Unicode and all legacy Vietnamese character sets.


The first multilingual release is WinVNKey 4.0 beta1 in August 2002 after a year of development. It supports over 30 Vietnamese and 45 international character sets initially, but its flexible framework allows users to add additional character sets without modifying the executable.  It also provides a user-friendly typing method for entering multilingual characters on a US keyboard. In addition, this WinVNKey version provides a unique method for entry of Hán Nôm characters by typing their Vietnamese pronunciations directly in any Windows application without the need for an IME.


WinVNKey 5


The January 2005 release features smart Vietnamese typing methods and smart macros that know when to combine or uncombine an accent mark depending on what the user wants: correct letter spelling, correct syllable spelling, correct word spelling, or correct pronunciation. These smart features  are made possible by a compact and extremely fast internal spell-check engine. This also enables WinVNKey to support character set guessing for plain text and fast retrieval of Han Nom characters based on Vietnamese Latin-based words.


This release also supports RTF file conversion based on font names, not character sets.  Each font name is associated with a conversion file in plain text. Users can edit files or create new ones to support conversion of new fonts.  They can do this manually or via a set of dialogs.


In addition, WinVNKey supports keyboards that have dead keys.  Users can turn all dead keys into normal keys so that accent marks can be typed after base vowels.


Han Nom support has been enhanced.  The database has been split into Han and Nom separately. The raw database files are provided in plain text so that they can be edited directly to correct, or delete errors, or add new entries. WinVNkey provides an option to rebuild the raw database into binary for final use. Users can set up their system registry to support surrogate characters via a dialog.


This release was initially planned as the final release of WinVNKey 4.0 because all the previous releases were labeled as beta. But the changes in the UI design and features are so extensive that it is better to package it as WinVNKey 5.0 to reflect a major release.


A number of minor version of WinVNKey 5.x have been released that enhanced the product significantly. Its macro engine is now very smart and sophisticated. Users can configure macros to expand only when the resulting words are Vietnamese.  In addition, the resulting words can change their character cases intelligently based on the context. WinVNKey also supplies a number of lazy syllable macros and lazy word macros that can speed up Vietnamese typing significantly. In addition, the spell checking engine has been enhanced to allow for multiple word correction.







- Version 5.x, 32-bit (2005-2014): Hoc Dinh Ngo (hoc96@yahoo.com) -- This version is dedicated to NT-based platforms such as NT 3.x/4, 2000, XP, 2003, and Vista, 2008, etc. The focus of version 5.x is to support smart Vietnamese typing features:


  • Supports Vietnamese typing in almost all Windows applications: MS Office, Internet Explorer, Wordpad, Notepad, pidgin, gaim, firefox, thunderbird, etc.
  • Supports smart placement of Vietnamese diacritics on mono-syllable words (e.g. Hùng Vương) or multi-syllable words (e.g. Inđônêxia), allowing users to type the diacritics anywhere in the syllable, correcting spelling for single words or compound words.
  • Supports many types of macros, especially lazy syllables and lazy words. These two smart macros will expand if and only if the resulting word is a legal Vietnamese word (e.g. Hùng) or an intermediate form of a legal Vietnamese word (e.g. Vưong is the intermediate form of Vương).
  • Supports spelling correction for multiple words on the fly
  • Supports entry of Hán or Nôm characters by typing their pronunciations in Vietnamese or Pinyin. Users can type multi Vietnamese or Pinyin words without spaces in between (e.g. anhhùng) to reduce the number of Hán/Nôm characters to choose.
  • Supports entry of Hán or Nôm characters by the four corner index method or Canjie.
  • Has large databases of Hán/Nôm characters (in plain text), including Hán characters used in Bhuddist literature.
  • Allows users to update Hán/Nôm databases with new characters.
  • Supports Hán Nôm surrogate characters, providing GUI to allow users to configure Unicode surrogates in registry easily.
  • Supports entry of Katakana and Hiragana, etc.
  • Supports auto-guessing the character set of the source plain text, hence, can convert plain text where the source character set is unknown.
  • Supports converting plain text to RTF, which is useful for converting plain text in legacy Vietnamese character sets to RTF to preserve data integrity.
  • Supports smart conversion of RTF files based on font names. Users do not have to specify the character set of the source file; all they need to do is specify which source font name will be changed to which destination font name. WinVNKey will determine the character sets based on the font names imbedded in the file. This method allows the source file to contain multiple character sets.
  • Supports conversion of character case or character set for selected text in any Windows application. All users need to do is use the mouse to select the text, then press and release a CTRL key, and finally right click the mouse to choose an appropriate conversion menu to perform the conversion. The output text will replace the selected text in the application.
  • Supports hot keys, dead keys, invisible spaces, special key sequences, etc.
  • Supports customization of WinVNKey settings for individual applications: keyboard mode, output method, fixing macro bugs.


Many thanks go to our many beta testers, especially these people (in alphabetical order):

Trần Bình, Nguyễn Văn Danh, Bùi Khương Duy, Hưng, Thái Jasper, Nguyễn Khải, Thanh Không (Ko Masaki), Phạm Kim Long, Trần Tiến Ngọc, Xương Rồng, Sơn Thanh, Nguyễn Văn Thành, Lương Ngọc Thi, Trần Timothy, Nguyễn Ngọc Tiến, Nguyễn Tony, Nguyễn Đức Trọng, and many other people.


We would like to acknowledge unselfish contributions in the Hán Nôm area from Sơn Thanh (Hán Nôm expert), Đặng Thế Kiệt (co-author of online Thiều Chửu Hán Việt dictionary), and Nguyễn Ngọc Tiến, Hưng.


- Version 4.x, 32-bit (2001-2004): First version to provide multilingual support, including full Unicode and all Vietnamese character sets known so far, for all versions of Windows NT 3.x, 4, 2000, XP, 9X/ME.


Contributors to version 4.x:

  • Hoc Dinh Ngo (hoc96@yahoo.com): lead developer
  • David Le (dle95035@yahoo.com): installation packaging
  • Thomas Menath (tmenath@infonegocio.com): German localization and active beta testing
  • Bình Anson (budsas@arach.net.au): Pali-Sanskrit macros and active beta testing


- Version 3.x (1999-2000): Thu Nguyen (thu@vietpage.com) -- supports Win9X/ME, NT3.51/4 with some Unicode in certain applications


- Version 2.x (1995-1998): Vuong Doan Nguyen (levan@hotmail.com) -- supports Win9X, NT3.51/4 (no Unicode)


- Version 1.x (1992-1994): Cuong Tan Nguyen (ctn@alumni.stanford.org) & Chau Vu (chauv@microsoft.com) -- supports Windows 3.x

1.x & 4.x, 5.x - Học Ðình Ngô (hoc96@yahoo.com)


1.x - Cương Minh Bùi (cuong_bui@yahoo.com)

1.x - Tom T. Trương (Tiến Vietnamese Software)



Coordinator: Hùng Phước Hồ (phuochung@yahoo.com)

Joint effort by many people -- too numerous to acknowledge properly. Thank you all.






- Author: Hoc Dinh Ngo

- Web design: TuBinh Tran