TRON Code is a multi-byte
character encoding
Character encoding is the process of assigning numbers to graphical character (computing), characters, especially the written characters of human language, allowing them to be stored, transmitted, and transformed using computers. The numerical v ...
used in the
TRON project. It is similar to
Unicode
Unicode or ''The Unicode Standard'' or TUS is a character encoding standard maintained by the Unicode Consortium designed to support the use of text in all of the world's writing systems that can be digitized. Version 16.0 defines 154,998 Char ...
but does not use Unicode's
Han unification
Han unification is an effort by the authors of Unicode and the Universal Character Set to map multiple character sets of the Han characters of the so-called CJK languages into a single set of unified characters. Han characters are a featur ...
process: each character from each
CJK character set is encoded separately, including archaic and historical equivalents of modern characters. This means that Chinese, Japanese, and Korean text can be mixed without any ambiguity as to the exact form of the characters; however, it also means that many characters with equivalent semantics will be encoded more than once, complicating some operations.
TRON has room for 150 million code points. Separate code points for Chinese, Korean, and Japanese variants of the 70,000+ Han characters in Unicode 4.1 (if that were deemed necessary) would require more than 200,000 code points in TRON. TRON includes the non-Han characters from Unicode 2.0, but it has not been keeping up to date with recent editions to Unicode as Unicode expands beyond the
Basic Multilingual Plane and adds characters to existing scripts. The TRON encoding has been updated to include other recent code page updates like
JIS X 0213.
Fonts for the TRON encoding are available, but they have restrictions for commercial use.
Structure
Each character in TRON Code is encoded as two bytes (as long as it is present in the current encoding plane). Similarly to
ISO/IEC 2022, the TRON character encoding handles characters in multiple character sets within a single character encoding by using escape sequences, referred to as language specifier codes, to switch between planes of 48,400 code points. Character sets incorporated into TRON Code include existing character sets such as
JIS X 0208
JIS X 0208 is a 2-byte character set specified as a Japanese Industrial Standards, Japanese Industrial Standard, containing 6879 graphic characters suitable for writing text, place names, personal names, and so forth in the Japanese language. Th ...
and
GB 2312
is a key official character set of the People's Republic of China, used for Simplified Chinese characters. GB2312 is the registered internet name for EUC-CN, which is its usual encoded form. ''GB'' refers to the Guobiao standards (国家标准), ...
, as well as other character sources such as the
Dai Kan-Wa Jiten, and some scripts not included in other encodings such as
Dongba symbols.
Owing to the incorporation of entire character sets into TRON Code, many characters with equivalent semantics are encoded multiple times; for example, all of the kanji characters in the GT Typeface receive their own codepoints, despite many of them overlapping with other kanji character sets that are already included such as JIS X 0208. One such example is the character 亜 (located in Unicode at U+4E9C) which appears in the JIS X 0208 region at , the GT Typeface region at , and the Dai Kan-Wa Jiten region at .
Control codes
Bytes in the range 0x00 to 0x20 and 0x7F are reserved for use in control codes.
Character codes
Characters in each plane are divided into four zones. Each zone is allocated separately; for example, in plane 1 JIS X 0208 characters reside in Zone A starting at 0x2121, JIS X 0213 characters reside in both Zone A and Zone B, and GB 2312 characters reside in Zone C starting at 0x2180.
TRON code points are notated as "X-YYYY", where "X" is the plane number in decimal and "YYYY" is the code point in hexadecimal. Alternatively, the notation "0xNNYYYY" can be used, where "NN" is the second byte in hexadecimal of the language specifier code. A text format "&TNNYYYY;" can be used to denote a TRON code point in ASCII text, in a similar manner to
numeric character references in HTML, SGML or XML. However, a standard and conforming HTML or XML parser would treat them as named entities, that can't be directly and easily mapped to valid and unambiguous sequences of code points in the UCS, without an extensive DTD to define them (possibly by using some private use characters for TRON escapes, or Unicode variation selectors mapped to TRON characters for encoding different TRON characters represented as the same character in the UCS): a different SGML-based parser will be needed to support the TRON text format in a way interoperable with standard UTF's for the UCS.
Language specifier codes
Language specifier codes are prefixed with 0xFE. Valid suffixes are 0x21 to 0x7E (referencing planes 1 to 94) and 0x80 to 0xFE (for future planes), many of which are unallocated.
Special and escape codes
Special codes are prefixed with 0xFF.
Planes
The following are the planes allocated for use in TRON Code, along with their corresponding language specifier codes and a description of the character sets included in each plane.
Planes 11 to 15 were originally allocated to store the
Mojikyō
(), also known by its full name , is a character encoding scheme created to provide a complete index of characters used in the Written Chinese, Chinese, Japanese writing system, Japanese, Korean writing system, Korean, Vietnamese language, Vietna ...
character set, but disputes have led to the planes being excluded. All other planes up to 31 are currently reserved for future allocation.
See also
*
TRON project
**
BTRON
**
ITRON
External links
TRONコード体系Tron code system in BTRON specification document
TRON文字収録センターTron character collection center
超漢字Operating system with BTRON standard
Tron GT-Mincho font
Active TRON character page
References
{{character encodings
Character sets
TRON project