# VNI

VNI Software Company is a developer of various education, entertainment, office, and utility software packages. They are known for developing an encoding (VNI encoding) and a popular input method (VNI Input) for Vietnamese on for computers. VNI is often available on computer systems to type Vietnamese, alongside TELEX input method as well. The most common pairing is the use of VNI on keyboard and computers, whilst TELEX is more common on phones or touchscreens.

## History

The VNI company is a family-owned company and based in Westminster, California. It was founded in 1987 by Hồ Thành Việt to develop software that eases Vietnamese language use on computers. Among their products were the VNI Encoding and VNI Input Method. The VNI Input Method has since grown to become the top two most popular input methods for Vietnamese, alongside TELEX which is more advantageous for phones and touchscreens whilst VNI has found more use on keyboard computer systems.

### VNI vs. Microsoft

In the 1990s, Microsoft recognized the potential of VNI's products and incorporated VNI Input Method into Windows 95 Vietnamese Edition and MSDN, in use worldwide.
Upon Microsoft's unauthorized use of these technologies, VNI took Microsoft to court over the matter. Microsoft settled the case out of court, withdrew the input method from their entire product line, and developed their own input method. It has, although virtually unknown, appeared in every Windows release since Windows 98.
Starting with Windows 10 version 1903, the VNI Input Method (as "Vietnamese Number Key-based"), along with the Telex input method, are now natively supported.

### Unicode

Despite the growing popularity of Unicode in computing, the VNI Encoding (see below) is still in wide use by Vietnamese speakers both in Vietnam and abroad. All professional printing facilities in the Little Saigon neighborhood of Orange County, California continue to use the VNI Encoding when processing Vietnamese text. For this reason, print jobs submitted using the VNI Character Set are compatible with local printers.

## Input methods

VNI invented, popularized, and commercialized an input method and an encoding, the VNI Character Set, to assist computer users entering Vietnamese on their computers. The user can type using only ASCII characters found on standard computer keyboard layouts. Because the Vietnamese alphabet uses a complex system of diacritics for tones and other letters of the Vietnamese alphabet, the keyboard would need 133 alphanumeric keys and a Shift key to cover all possible characters.

### VNI Input Method

Originally, VNI's input method utilized function keys (F1, F2, ...) to enter the tone marks, which later turned out to be problematic, as the operating system used those keys for other purposes. VNI then turned to the numerical keys along the top of the keyboard (as opposed to the numpad) for entering tone marks. This arrangement survives today, but users also have the option of customizing the keys used for tone marks.
With VNI Tan Ky mode on, the user can type in diacritical marks anywhere within a word, and the marks will appear at their proper locations. For example, the word trường, which means 'school', can be typed in the following ways:
* truong-7-2 → trường (most conventional way)
* 72truong → trường
* t72ruong → trường
* tr72uong → trường
* tru7o72ng → trường
* truo72ng → trường
* truo7ng2 → trường
The first way is the conventional method, following handwriting and spelling convention, where the base is written first (truong) and then the tonal marks added later one by one.

### VNI Tan Ky

With the release of VNI Tan Ky 4 in the 1990s, VNI freed users from having to remember where to correctly insert tone marks within a word, because, as long as the user enters all the required characters and tone marks, the software will group them correctly. This feature is especially useful for newcomers to the language.

### VNI Auto Accent

VNI Auto Accent is the company's most recent software release (2006), with the purpose of alleviating repetitive strain injury (RSI) caused by prolonged use of computer keyboards. Auto Accent helps reduce the number of keystrokes needed to type each word by automatically adding diacritical marks for the user. The user must still enter every base letter in the word.

## Character encodings
### VNI Encoding (Windows/Unix)

The VNI Encoding uses up to two bytes to represent one Vietnamese vowel character, with the second byte supplying additional diacritical marks, therefore removing the need to replace control characters with Vietnamese characters, a problematic system found in TCVN1 (VSCII-1) and in VISCII, or using two different fonts such as is sometimes employed for TCVN3 (VSCII-3), one containing lowercase characters and the other uppercase characters. A similar approach is taken by Windows-1258 and VSCII-2.
This solution is more portable between different versions of Windows and between different platforms. However, due to the presence of multiple characters in a file to represent one written character increases the file size. The increased file size can usually be accounted for by compressing the data into a file format such as ZIP.
The VNI encoding was used extensively in the south of Vietnam, and sometimes used overseas, while TCVN 5712 was dominant in the north.
Points 0x00 through 0x7F follow ASCII.
VNI "ANSI" Encoding (Windows/Unix) :
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | A | B | C | D | E | F |
| 8x | | | | | | | | | | | | | | | |
| 9x | | | | | | | | | | | | | | | |
| Ax | | | | | | | | | | | | | | | |
| Bx | | | | | | | | | | | | | | | |
| Cx | ◌̂̀ | ◌̂́ | ◌̂ 0302 | ◌̂̃ | ◌̣̂ | ◌̂̉ | Ỉ 1EC8 | ◌̆̀ | ◌̆́ | ◌̆ 0306 | ◌̣̆ | Ì | Í | Ỵ 1EF4 | ◌̣ 0323 |
| Dx | | Đ 0110 | Ị 1ECA | Ĩ 0128 | Ơ 01A0 | ◌̃ 0303 | Ư 01AF | ◌̀ 0300 | ◌́ 0301 | ◌̆̉ | ◌̉ 0309 | ◌̆̃ | | | |
| Ex | ◌̂̀ | ◌̂́ | ◌̂ 0302 | ◌̂̃ | ◌̣̂ | ◌̂̉ | ỉ 1EC9 | ◌̆̀ | ◌̆́ | ◌̆ 0306 | ◌̣̆ | ì | í | ỵ 1EF5 | ◌̣ 0323 |
| Fx | | đ 0111 | ị 1ECB | ĩ 0129 | ơ 01A1 | ◌̃ 0303 | ư 01B0 | ◌̀ 0300 | ◌́ 0301 | ◌̆̉ | ◌̉ 0309 | ◌̆̃ | | | |

### VNI Encoding for Macintosh

A version intended for use on Macintosh systems, with a different arrangement (corresponding to the different arrangement between Windows-1252 and Mac OS Roman).
VNI "Mac" Encoding (Macintosh) :
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
| 8x | ◌̣̂ | ◌̂̉ | | ◌̆́ | Đ 0110 | Ư 01AF | ◌̆̃ | ◌̂́ | ◌̂̀ | ◌̂ 0302 | ◌̣̂ | ◌̂̃ | ◌̂̉ | | ◌̆́ | ◌̆̀ |
| 9x | ◌̆ 0306 | ◌̣̆ | í 00ED | ì 00EC | ỵ 1EF5 | ◌̣ 0323 | đ 0111 | ĩ 0129 | ị 1ECB | ơ 01A1 | ư 01B0 | ◌̃ 0303 | ◌̆̉ | ◌́ 0301 | ◌̉ 0309 | ◌̆̃ |
| Ax | | | | | | | | | | | | | | | Ỉ 1EC8 | ◌̀ 0300 |
| Bx | | | | | | | | | | | | | | | ỉ 1EC9 | ◌̀ 0300 |
| Cx | | | | | | | | | | | | ◌̂̀ | ◌̂̃ | ◌̃ 0303 | | |
| Dx | | | | | | | | | | | | | | | | |
| Ex | | | | | | ◌̂ 0302 | ◌̆ 0306 | ◌̂́ | ◌̣̆ | ◌̆̀ | Í 00CD | Ỵ 1EF4 | ◌̣ 0323 | Ì 00CC | Ĩ 0128 | Ơ 01A0 |
| Fx | | Ị 1ECA | ◌̆̉ | ◌̉ 0309 | ◌́ 0301 | | | | | | | | | | | |

### VNI Encoding for DOS

The VNI encoding for use on DOS does not use separate characters for diacritics, instead replacing certain ASCII punctuation characters with tone-marked uppercase letters (compare ISO 646).
VNI "ASCII" Encoding (DOS) :
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
| 0x | NUL | SOH | STX | ETX | EOT | ENQ | ACK | BEL | BS | HT | LF | VT | FF | CR | SO | SI |
| 1x | DLE | DC1 | DC2 | DC3 | DC4 | NAK | SYN | ETB | CAN | EM | SUB | ESC | FS | GS | RS | US |
| 2x | SP | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
| 3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
| 4x | Ỵ 1EF4 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
| 5x | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | Á 00C1 | _ |
| 6x | À 00C0 | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
| 7x | p | q | r | s | t | u | v | w | x | y | z | Ặ 1EB6 | Ả 1EA2 | Ã 00C3 | Ạ 1EA0 | DEL |
| 8x | Ấ 1EA4 | ẻ 1EBB | é 00E9 | â 00E2 | ẽ 1EBD | à 00E0 | ẹ 1EB9 | Ầ 1EA6 | ê 00EA | ế 1EBF | è 00E8 | ề 1EC1 | Ẩ 1EA8 | ì 00EC | ể 1EC3 | ễ 1EC5 |
| 9x | Ẫ 1EAA | ỏ 1ECF | õ 00F5 | ô 00F4 | ọ 1ECD | ò 00F2 | ố 1ED1 | ù 00F9 | ồ 1ED3 | ổ 1ED5 | ỗ 1ED7 | ộ 1ED9 | ủ 1EE7 | ũ 0169 | ụ 1EE5 | ư 01B0 |
| Ax | á 00E1 | í 00ED | ó 00F3 | ú 00FA | ứ 1EE9 | ừ 1EEB | ử 1EED | ữ 1EEF | ự 1EF1 | ỉ 1EC9 | ĩ 0129 | ị 1ECB | ệ 1EC7 | đ 0111 | Đ 0110 | Ậ 1EAC |
| Bx | Ắ 1EAE | Ằ 1EB0 | Ẳ 1EB2 | Ẵ 1EB4 | É 00C9 | È 00C8 | Ẻ 1EBA | Ẽ 1EBC | Ẹ 1EB8 | Ế 1EBE | Ề 1EC0 | Ể 1EC2 | Ễ 1EC4 | Ệ 1EC6 | Í 00CD | Ì 00CC |
| Cx | Ỉ 1EC8 | Ĩ 0128 | Ị 1ECA | Ó 00D3 | Ò 00D2 | Ỏ 1ECE | Õ 00D5 | Ọ 1ECC | Ố 1ED0 | Ồ 1ED2 | Ổ 1ED4 | Ỗ 1ED6 | Ộ 1ED8 | Ớ 1EDA | Ờ 1EDC | Ở 1EDE |
| Dx | Ỡ 1EE0 | Ợ 1EE2 | Ú 00DA | Ù 00D9 | Ủ 1EE6 | Ũ 0168 | Ụ 1EE4 | Ứ 1EE8 | Ừ 1EEA | Ử 1EEC | Ữ 1EEE | Ự 1EF0 | Ý 00DD | Ỳ 1EF2 | Ỷ 1EF6 | Ỹ 1EF8 |
| Ex | ả 1EA3 | ã 00E3 | ạ 1EA1 | ấ 1EA5 | ầ 1EA7 | ẩ 1EA9 | ẫ 1EAB | ậ 1EAD | ă 0103 | ắ 1EAF | ằ 1EB1 | ẳ 1EB3 | ẵ 1EB5 | ặ 1EB7 | ý 00FD | ỳ 1EF3 |
| Fx | ỷ 1EF7 | ỹ 1EF9 | ỵ 1EF5 | ơ 01A1 | ớ 1EDB | ờ 1EDD | ở 1EDF | ỡ 1EE1 | ợ 1EE3 | Ô 00D4 | Ơ 01A0 | Ư 01AF | Ă 0102 | Â 00C2 | Ê 00CA | NBSP |

### VIQR and VNI-Internet Mail

The use of Vietnamese Quoted-Readable (VIQR), a convention for writing in Vietnamese using ASCII characters, began during the Vietnam War, when typewriters were the main tool for word processing. Because the U.S. military required a way to represent Vietnamese scripts accurately on official documents, VIQR was invented for the military. Due to its longstanding use, VIQR was a natural choice for computer word processing, prior to the appearance of VNI, VPSKeys, VSCII, VISCII, and Unicode. It is still widely used for information exchange on computers, but is not desirable for design and layout, due to its cryptic appearance.
VIQR's main issue was the difficulty of reading VIQR text, especially for inexperienced computer users. VNI created and released a free font called VNI-Internet Mail, which utilized a variant of the VIQR notation and VNI's combining character technique to give VIQR text a more natural appearance by replacing certain ASCII punctuation with combining characters.
The following table compares VNI-Internet Mail to other codified VIQR or VIQR-like conventions.
| Diacritical mark | RFC 1456 VIQR notation | VSCII-MNEM notation | VNI Internet Mail notation | Example |
| Breve | ( | < | | | A| displayed as Ă |
| Circumflex | ^ | > | ^ | E^ displayed as Ê |
| Horn | + | * | * | U* displayed as Ư |
| Acute | ' | ' | ' | O' displayed as Ó |
| Grave | ` | ! | ` | O` displayed as Ò |
| Hook above | ? | ? | { | O{ displayed as Ỏ |
| Tilde | ~ | " | ~ | O~ displayed as Õ |
| Dot below | . | . | } | O} displayed as Ọ |
| Barred D | DD | DD | D_ | D_ displayed as Đ |