Reference articles on history, science, culture and more
Encyclopedia

VISCII

Unofficial character encoding for the Vietnamese alphabet

VISCII is an unofficially defined modified ASCII character encoding for using the Vietnamese language with computers. It should not be confused with the similarly named officially registered VSCII encoding. VISCII keeps the 95 printable characters of ASCII unmodified, but it replaces 6 of the 33 control characters with printable characters. It adds 128 precomposed characters. Unicode and the Windows-1258 code page are now used for virtually all Vietnamese computer data, but legacy VSCII and VISCII files may need conversion.

01History and naming

VISCII was designed by the Vietnamese Standardization Working Group (Viet-Std Group) led by Christopher Cuong T. Nguyen, Cuong M. Bui, and Hoc D. Ngo based in Silicon Valley, California in 1992 while they were working with the Unicode consortium to include pre-composed Vietnamese characters in the Unicode standard. VISCII, along with VIQR, was first published in a bilingual report in September 1992, in which it was dubbed the "Vietnamese Standard Code for Information Interchange". The report noted a proliferation in computer usage in Vietnam and the increasing volume of computer-based communications among Vietnamese abroad, that existing applications used vendor-specific encodings which were unable to interoperate with one another, and that standardisation between vendors was therefore necessary. The successful inclusion of composed and precomposed Vietnamese in Unicode 1.0 was the result of the lessons learned from the development of 8-bit VISCII and 7-bit VIQR.

The next year, in 1993, Vietnam adopted TCVN 5712, its first national standard in the information technology domain. This defined a character encoding named VSCII, which had been developed by the TCVN Technical Committee on Information Technology (TCVN/TC1), and with its name standing for "Vietnamese Standard Code for Information Interchange". VSCII is incompatible with, and otherwise unrelated to, the earlier-published VISCII. Unlike VISCII, VSCII is a "Vietnamese Standard" in the sense of a national standard.

VISCII and VIQR were approved as the informational-status RFC 1456, attributed to the Viet-Std group and dated May 1993. As is the case with IETF RFCs, RFC 1456 notes them to be "conventions" used by overseas Vietnamese speakers on Usenet, and that it "specifies no level of standard". In spite of this, it continues to call VISCII the "VIetnamese Standard Code for Information Interchange" (the same name taken by VSCII). The labels VISCII and csVISCII are registered with the IANA for VISCII, with reference to RFC 1456. (There is, on the other hand, no official IANA label for TCVN 5712 / VSCII, although x-viet-tcvn5712 was previously supported by Mozilla Firefox.)

02Design

A traditional extended ASCII character set consists of the ASCII set plus up to 128 characters. Vietnamese requires 134 additional letter-diacritic combinations, which is six too many. There are (short of dropping tone mark support for capital letters, as in VSCII-3) essentially four different ways to handle this problem:

  1. Use variable-width encoding (as does UTF-8)
  2. Include combining diacritical marks for tone marks (as do VSCII-2 and Windows-1258) or for diacritics in general (as do ANSEL and VNI)
  3. Replace some ASCII punctuation, preferably punctuation which is not invariant in ISO 646 (as does VNI for DOS)
  4. Replace at least six of the basic ASCII control characters (as do VPS and VSCII-1)

VISCII went for the last option, replacing six of the least problematic (e.g., least likely to be recognised by an application and acted on specially) C0 control codes (STX, ENQ, ACK, DC4, EM, and RS) with six of the least-used uppercase letter-diacritic combinations. While this option may cause programs that use those control codes to malfunction when handling VISCII text, it creates fewer complications than the other two options (the designers note that non-8-bit clean transmission had been found to pose more difficulty in practice than the control character re-use). Nonetheless, locations of both C0 or C1 control characters and the codes used for the non-breaking space in ISO-8859-1, Mac OS Roman and OEM-US were deliberately assigned to uppercase letters, with the intention of making use of lowercase codepoints with an all-capital font a serviceable workaround if graphical characters could not be displayed for those codes.

However, using up all the extended code points for accented letters left no room to add useful symbols, superscripted numbers, curved quotes, proper dashes, etc., like most other extended ASCII character sets.

Location of characters deliberately mostly follows ISO-8859-1 where there are characters in common between the two code pages (the uppercase Õ being noted as an exception), motivated by user friendliness concerns.

03Support

VISCII is partially supported by the TriChlor Software Group in California, which has released various VISCII-compliant software packages, libraries, and fonts for MS-DOS and Windows, Unix, and Macintosh. VISCII-compliant software is available at many FTP sites.

VISCII was historically offered as an encoding for outgoing email by Mozilla Thunderbird. It was also supported by the Windows Vietnamese keyboard software, WinVNKey, created by Christopher Cuong T. Nguyen and later upgraded through various Windows versions by Hoc D. Ngo and others.

VISCII was mostly used by overseas Vietnamese speakers, with VSCII (TCVN) being more popular in northern Vietnam and VNI being more popular in southern Vietnam.

04Character set

VISCII
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x NUL SOH 1EB2 ETX EOT 1EB4 1EAA BEL BS HT LF VT FF CR SO SI
1x DLE DC1 DC2 DC3 1EF6 NAK SYN ETB CAN 1EF8 SUB ESC FS GS 1EF4 US
2x  SP  ! " # $ % & ' ( ) * + , - . /
3x 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4x @ 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 [ \ ] ^ _
6x ` 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 { | } ~ DEL
8x 1EA0 1EAE 1EB0 1EB6 1EA4 1EA6 1EA8 1EAC 1EBC 1EB8 1EBE 1EC0 1EC2 1EC4 1EC6 1ED0
9x 1ED2 1ED4 1ED6 1ED8 1EE2 1EDA 1EDC 1EDE 1ECA 1ECE 1ECC 1EC8 1EE6 Ũ0168 1EE4 1EF2
Ax Õ00D5 1EAF 1EB1 1EB7 1EA5 1EA7 1EA9 1EAD 1EBD 1EB9 ế1EBF 1EC1 1EC3 1EC5 1EC7 1ED1
Bx 1ED3 1ED5 1ED7 1EE0 Ơ01A0 1ED9 1EDD 1EDF 1ECB 1EF0 1EE8 1EEA 1EEC ơ01A1 1EDB Ư01AF
Cx À Á Â Ã 1EA2 Ă0102 1EB3 1EB5 È É Ê 1EBA Ì Í Ĩ0128 1EF3
Dx Đ0110 1EE9 Ò Ó Ô 1EA1 1EF7 1EEB 1EED Ù Ú 1EF9 1EF5 Ý 1EE1 ư01B0
Ex à á â ã 1EA3 ă0103 1EEF 1EAB è é ê 1EBB ì í ĩ0129 1EC9
Fx đ0111 1EF1 ò ó ô õ 1ECF 1ECD 1EE5 ù ú ũ0169 1EE7 ý 1EE3 1EEE
  Differences from ISO-8859-1
Watch videos about VISCIIExplainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article VISCII, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.