VietIME 1.3

Cross-platform Vietnamese Input Method Editor

English | Vietnamese


Input methods are software components that interpret user operations such as typing keys, speaking, or writing using a pen device to generate text input for applications. The most common input methods are the ones that let users type text in Chinese, Japanese, Korean, or Vietnamese (Nôm) languages that use thousands of different characters, on a regular-sized keyboard. The text is typed in a form that can be handled by regular-sized keyboards, for example, in a romanized form, and then converted into the form that's really intended.

VietIME uses the input method framework in the Java 2 platform (J2SE 1.4 or higher) to enable the collaboration between text editing components and input methods in entering Vietnamese text with any Java runtime environment. Text editing components that use the input method framework run on any Java application environment and support any text input methods available on that Java application environment without modifying or recompiling the text editing component.

Version 1.2 integrates new functionalities that are frequently used in editing Vietnamese text, such as Spell Check, Convert, Change Case, Strip Diacritics, Normalize Diacritics, Sort Vietnamese words, etc. These operations are only available to Swing applications.


  1. Java Runtime Environment, v1.4 or later
  2. Any Java application or applet that employs AWT (TextArea and TextField) and Swing text components. Some examples are JBuilder, NetBeans, Jext, jEdit,...
    : To work effectively with Vietnamese documents, a Java application should include provisions for font selection and file opening/saving in Unicode formats.


To make the Vietnamese Input Method Editor available to Java applications and applets, its jar file, VietIME.jar, should be copied into the extensions directory of a Java 2 runtime environment. For J2SE v1.4.2, this would be C:\Program Files\Java\j2re1.4.2\lib\ext directory on Windows, /usr/java/j2re1.4.2/lib/ext on Solaris and Linux, or /Library/Java/Extensions on Mac OS X.

You can also specify the extension directory at start-up time by setting the java.ext.dirs system property. For example, if VietIME.jar is placed in C:\VietIME directory, you can make input methods available to your program by the following command:

java -Djava.ext.dirs=C:\VietIME -jar yourprogram.jar

Note to Developers: Java programs run within the integrated development environment—JBuilder or NetBeans, e.g.—using the JRE of the JDK configured for that IDE. Therefore, to enable input of Vietnamese text for software design and testing within IDE, VietIME.jar should also be copied into the extensions directory of the JRE under the JDK used for the IDE, e.g., C:\j2sdk1.4.2\jre\lib\ext on Windows.


After launching a Java application with a text component that supports input methods, the input method can be selected using the input method selection user interface provided by the runtime environment. First, make sure that a text component has the focus—typically, the text component indicates this by showing a blinking insertion point. Then, for Sun's Java 2 Runtime Environment, choose the Select Input Method menu item from the menu that can be pulled down from the top left corner of the window (the System menu on Windows, Window menu on Solaris). One can also right-click on the application’s title bar to get this menu. If you have installed J2RE 1.4 or higher and the Select Input Method option still isn't there, then the input method hasn't been installed properly.

For platforms that do not have the Select Input Method menu item in the system menu (e.g. Linux), Sun provides an alternative way to select an input method by pressing a user-defined hot key. This way of selecting an input method is also useful for platforms that have the menu item in the system menu, e.g., Solaris and Microsoft Windows. If you press your favorite hot key defined by the Input Method Hot Key tool, the same popup menu discussed previously is displayed.

Choose Vietnamese Input Methods and select the desired input method option from the popup menu. VietIME supports the three most common Vietnamese input methods—VNI, VIQR, and Telex. A selectable SmartMark feature allows entering diacritical marks at word ends, besides the traditional method.

Activation of IME is typically indicated by the appearance of a small status window that shows the currently selected input method. Initially, this window is positioned near the lower right corner of the screen, but it can be moved to a different location. To disable the current Vietnamese Input Method, bring up the popup menu and select System Input Methods; the status window will be hidden subsequently. A context menu has been added to the status window to allow full control of the input engine.

For applets running in Java-enabled web browsers with J2RE plug-in installed, the same hot key mechanism for Linux is applied, in which the hot key, once configured using the input method hot selection key tool, can be pressed to pop up the input method selection menu when the text component in the applet gets focus.

Note: Be sure to turn off other external Vietnamese keyboard drivers—e.g., VPSKeys, WinVnKey, VNI, VietKey, or UniKey—when you use VietIME.


If the caret is moved away from a character or a word waiting for marking (which one, a character or a word, depends on whether a SmartMark option is selected), that character or word loses the ability to accept accent marks. It will need to be re-typed before a diacritical mark can be combined with it.



Accents vs. Vowels
Dấu với nguyên âm
Telex Method
Cách gõ Telex
VNI Method
Cách gõ VNI
VIQR Method
Cách gõ VIQR
a circumflex - â aa a6 a^
e circumflex - ê ee e6 e^
o circumflex  - ô oo o6 o^
a breve - ă aw a8 a(
o horn - ơ ow o7 o+
u horn - ư uw u7 u+
d stroke - đ dd d9 dd
acute - sắc s 1 '
grave - huyền f 2 `
dot below - nặng j 5 .
hook above - hỏi r 3 ?
tilde - ngã x 4 ~
remove diacritics - xóa dấu z 0 -
Example - Ví dụ:
Vietnamese - Tiếng Việt
Vis duj:
Tieesng Vieejt
Vi1 du5:
Tie61ng Vie65t
Vi' du.:
Tie^'ng Vie^.t

The keys designated as diacritical marks are to be typed immediately after the vowel they qualify, or at the end of the word, if SmartMark function is selected. To type those keys literally, i.e., without combining them with the preceding vowel, type the escape character, defined to be the back slash key (\), right before entering those keys. For example, while Viet Mode is on with VNI Method selected, if you want to type the character sequence a1 , enter a\1—the escape character (\) will prevent character a and character 1 from combining into character á.


Unicode has only limited support in Windows 95/98/Me, but these operating systems are still capable of displaying all Vietnamese characters using appropriate Unicode fonts. Full Unicode support is built into Windows NT/2000/XP. Linux and Mac OS 8.5 or greater have begun to provide support Unicode. Mac OS X and Palm OS provide full Unicode support.

The following Windows fonts, which come supplied with Windows 98SE/Me/2000/XP, contain many Unicode characters, including Vietnamese:

Times New Roman, Courier New, Arial, Tahoma, Verdana, Palatino Linotype

Note: Users of Windows 95/98/NT should download the latest versions of these fonts, as the older versions, which are not fully Unicode-compliant, would display question marks (?) or squares (◻) for unsupported characters. They can be downloaded from TrueType Core Fonts. These fonts are also included in WinNT Service Pack 4, in Internet Explorer 5.5 or later, and in Microsoft Office 2000.

Many other Unicode fonts can be found at VietUniFont Archive and Vietnamese Unicode Font Library.

Tips: You may opt to modify JRE's file for Windows or Linux to enable display of Vietnamese on Java Swing components without programmatically setting font for each component. This is not necessary for J2SE 5.0 on Windows.


For comments/feedback/input/bug report, please post at Viet Unicode Forum.