Our development of MacVNkey, a Mac Vietnamese keyboard driver, necessitates a change of the VISCII 1.1 character set. This article briefly summarizes VISCII 1.1 in Section A. Section B points out its weakness in the Macintosh environment and the need for a new version called MacVISCII, which will work on all major platforms. Section C outlines the strategy for multilingual support within the framework of 8-bit VISCII. Section D summarizes recommendations for font vendors to upgrade existing VISCII fonts to support both VISCII 1.1 and MacVISCII. Section E concludes the article.
+======================================================================+ | || 0 : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : A : B : C : D : E : F | +======================================================================+ | 0x || NUL:SOH:A(?:ETX:EOT:A(~:A^~:BEL:BS :HT :LF :VT :FF :CR :SO :SI | |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | 1x || DLE:DC1:DC2:DC3:Y? :NAK:SYN:ETB:CAN:Y~ :SUB:ESC:FS :GS :Y. :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 || A. :A(':A(`:A(.:A^':A^`:A^?:A^.:E~ :E. :E^':E^`:E^?:E^~:E^.:O^'| |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | 9x || O^`:O^?:O^~:O^.:O+.:O+':O+`:O+?:I. :O? :O. :I? :U? :U~ :U. :Y` | |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | Ax || O~ :a(':a(`:a(.:a^':a^`:a^?:a^.:e~ :e. :e^':e^`:e^?:e^~:e^.:o^'| |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | Bx || o^`:o^?:o^~:O+~:O+ :o^.:o+`:o+?:i. :U+.:U+':U+`:U+?:o+ :o+':U+ | |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | Cx || A` :A' :A^ :A~ :A? :A( :a(?:a(~:E` :E' :E^ :E? :I` :I' :I~ :y` | |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | Dx || DD :u+':O` :O' :O^ :a. :y? :u+`:u+?:U` :U' :y~ :y. :Y' :o+~:u+ | |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | Ex || a` :a' :a^ :a~ :a? :a( :u+~:a^~:e` :e' :e^ :e? :i` :i' :i~ :i? | |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | Fx || dd :u+.:o` :o' :o^ :o~ :o? :o. :u. :u` :u' :u~ :u? :y' :o+.:U+~| +======================================================================+This encoding has been implemented on Unix and DOS successfully. In Windows 3.1, however, not all Vietnamese characters are renderable because the operating system deliberately excludes them. Among those that are not renderable are all control characters and the non-breaking space character. Specifically, the following Vietnamese characters cannot be rendered in Windows 3.1:
+======================================================================+ | || 0 : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : A : B : C : D : E : F | +======================================================================+ | 0x || NUL:SOH:A(?:ETX:EOT:A(~:A^~:BEL:BS :HT :LF :VT :FF :CR :SO :SI | |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | 1x || DLE:DC1:DC2:DC3:DC4:NAK:SYN:Y? :Y. :Y~ :SUB:ESC:FS :GS :RS :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 || A. :A(':A(`:A(.:A^':A^`:A^?:A^.:E~ :E. :E^':E^`:E^?:E^~:E^.:O^'| |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | 9x || O^`:O^?:O^~:O^.:O+.:O+':O+`:O+?:I. :O? :O. :I? :U? :U~ :U. :Y` | |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | Ax || O~ :a(':a(`:a(.:a^':a^`:a^?:a^.:e~ :e. :e^':e^`:e^?:e^~:e^.:o^'| |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | Bx || o^`:o^?:o^~:O+~:O+ :o^.:o+`:o+?:i. :U+.:U+':U+`:U+?:o+ :o+':U+ | |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | Cx || A` :A' :A^ :A~ :A? :A( :a(?:a(~:E` :E' :E^ :E? :I` :I' :I~ :y` | |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | Dx || DD :u+':O` :O' :O^ :a. :y? :u+`:u+?:U` :U' :y~ :y. :Y' :o+~:u+ | |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | Ex || a` :a' :a^ :a~ :a? :a( :u+~:a^~:e` :e' :e^ :e? :i` :i' :i~ :i? | |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | Fx || dd :u+.:o` :o' :o^ :o~ :o? :o. :u. :u` :u' :u~ :u? :y' :o+.:U+~| +======================================================================+
+======================================================================+ | || 0 : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : A : B : C : D : E : F | +======================================================================+ | 0x || NUL:SOH:A(?:ETX:EOT:A(~:A^~:BEL:BS :HT :LF :VT :FF :CR :SO :SI | |----||----:---:---:---:---:---:---:---:---:---:---:---:---:---:---:---| | 1x || DLE:DC1:DC2:DC3:Y? :=/ :SYN:Y? :Y. :Y~ :SUB:ESC:FS :GS :Y. :US | +======================================================================+
MacVNkey is compliant with MacVISCII by default; however the user has an
option to switch back to VISCII 1.1. All MacVISCII fonts released with
MacVNkey since December 1995 have the first two rows conform with Table 3.
Upgrading X-Windows-based keyboard drivers (vnterm) and fonts is in
progress. Windows users can continue to use Windows-based fonts. Although
all Vietnamese characters in the control region are not used in Windows, it
is still desirable that new releases of Windows-based fonts conform to
Table 3 to facilitate their conversions to other platforms.
Updated:
Dec 18, 2014
-- Viet-Std Group
E. Conclusion
Changing a popular standard with a large installed base of users is
inevitably painful. To minimize disruption as much as possible we have
decided to change only two of the least frequently used upper-case
Vietnamese letters in the control region, thus completely sparing Windows
users. The resulting character set, MacVISCII, can accommodate popular
computing environments such as Mac, Unix, X-Windows, DOS, and Windows. It
is expected to be named VISCII version 2.0 and supersede VISCII 1.1. We
appeal to all Unix and DOS users to support the new version of VISCII for
the sake of portability once and for all.
Updated:
Oct 23, 1996
-- Viet-Std Group