MIK code page
Almost every DOS program created in Bulgaria, which has Bulgarian strings in it, was using MIK as encoding, and many such programs are still in use.
Code page layout
Each character is shown with its equivalent Unicode code point and its decimal code point. Only the second half of the table (code points 128–255) is shown, the first half (code points 0–127) being the same as ASCII.
Notes for implementors of mapping tables to Unicode
Implementors of mapping tables to Unicode should note that the MIK Code page unifies some characters:
- 0xE1 is both the German sharp S (U+00DF, ß) and the Greek lowercase beta (U+03B2, β);
- 0xE4 is both the n-ary summation sign (U+2211, ∑) and the Greek uppercase sigma (U+03A3, Σ);
- 0xE6 is both the micro sign (U+00B5, µ) and the Greek lowercase mu (U+03BC, μ);
- 0xEA is both the Ohm sign (U+2126, Ω) and the Greek uppercase omega (U+03A9, Ω);
- 0xEE is both the element-of sign (U+2208, ∈) and the Greek lowercase epsilon (U+03B5, ε)!
Binary character manipulations
The MIK code page maintains in alphabetical order all Cyrillic letters which enables very easy character manipulation in binary form:
10xx xxxx - is a Cyrillic Letter
100x xxxx - is an Upper-case Cyrillic Letter
101x xxxx - is a Lower-case Cyrillic Letter
In such case testing and character manipulating functions as:
IsAlpha(), IsUpper(), IsLower(), ToUpper() and ToLower(),
are bit operations and sorting is by simple comparison of character values.
For more information about the origins of the characters unification have a look at Unicode Consortium's mappings between IBM's code pages and Unicode
For more information about the range of 0xE0 to 0xFF please see the Microsoft Code Page 437 reference chart