Next: , Previous: , Up: Usage Reference   [Contents]


7.12 International Text Support

Msc-generator supports international text via both UTF-8 and UTF-1624. The type of encoding is determined automatically when the file is loaded. If it is ASCII or valid UTF-8, it is treated as so. Else it is treated as UTF-16. The Windows GUI displays the detected encoding on the status bar. You can change it by double clicking the indicator on the status bar - next time you save the file, it will be saved using the encoding displayed there. Below is an example of a simple chart shown in the language tutorial in my native language, Hungarian.

exA6_cshexA6

The CLI GUI only supports UTF-8.

Note that not all font faces contain characters for all possible unicode codepoints. This has to be considered when selecting a font25. If you mix characters of different languages, you need to ensure that they are displayed via a font that has coverage for all those characters.

In labels, you can use the \$ escape followed by exactly four hexadecimal digits, to insert any unicode character to a label, e.g., \$00a9 inserts the copyright symbol.

Note that if you plan to use non-ASCII characters in the chart text you need to select a font that can display them not only in the chart, but also for the internal editor. See Fonts.


Footnotes

(24)

UTF-8 is a superset of ASCII, where international characters are encoded in multiple bytes all larger than 127 (which is the largest ASCII character). In contrast, in UTF-16 all characters are encoded on two bytes, ASCII and international characters alike. The UTF-16 file usually start by the characters 0xff and 0xfe and their order determines in which order the two bytes of a character comes. UTF-8 is widely used in Linux and other Unix systems, whereas Windows has adopted UTF-16 as the system encoding. Msc-generator supports both file formats and both byte orders of UTF-16.

(25)

In signalling charts you can select a font via the text.font.face chart option or attribute, in graphs use the fontname attribute, whereas in Block Diagrams you need use text.font.face=<fonname>;.