MIK code page

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

MIK is a Cyrillic code page used with MS-DOS. It is based on the character set used in the Bulgarian Pravetz 16 IBM PC compatible system.

This is the most widespread DOS/OEM code page used in Bulgaria, rather than CP 808, CP 855, CP 866 or CP 872.

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.

-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
 
8_
 
А
0410

128
Б
0411

129
В
0412

130
Г
0413

131
Д
0414

132
Е
0415

133
Ж
0416

134
З
0417

135
И
0418

136
Й
0419
137
К
041A

138
Л
041B

139
М
041C

140
Н
041D

141
О
041E

142
П
041F

143
 
9_
 
Р
0420

144
С
0421

145
Т
0422

146
У
0423

147
Ф
0424

148
Х
0425

149
Ц
0426

150
Ч
0427

151
Ш
0428

152
Щ
0429

153
Ъ
042A

154
Ы
042B

155
Ь
042C

156
Э
042D

157
Ю
042E

158
Я
042F

159
 
A_
 
а
0430

160
б
0431

161
в
0432

162
г
0433

163
д
0434

164
е
0435

165
ж
0436

166
з
0437

167
и
0438

168
й
0439

169
к
043A

170
л
043B

171
м
043C

172
н
043D

173
о
043E

174
п
043F

175
 
B_
 
р
0440

176
с
0441

177
т
0442

178
у
0443

179
ф
0444

180
х
0445

181
ц
0446

182
ч
0447

183
ш
0448

184
щ
0449

185
ъ
044A

186
ы
044B

187
ь
044C

188
э
044D

189
ю
044E

190
я
044F

191
 
C_
 

2514

192

2534

193

252C

194

251C

195

2500

196

253C

197

2563

198

2551

199

255A

200

2554

201

2569

202

2566

203

2560

204

2550

205

256C

206

2510

207
 
D_
 

2591

208

2592

209

2593

210

2502

211

2524

212

2116

213
§
00A7

214

2557

215

255D

216

2518

217

250C

218

2588

219

2584

220

258C

221

2590

222

2580

223
 
E_
 
α
03B1

224
ß
00DF[1]
225
Γ
0393

226
π
03C0

227
Σ
03A3[2]
228
σ
03C3

229
µ
00B5[3]
230
τ
03C4

231
Φ
03A6

232
Θ
0398

233
Ω
03A9[4]
234
δ
03B4

235

221E

236
φ
03C6

237
ε
03B5[5]
238

2229

239
 
F_
 

2261

240
±
00B1

241

2265

242

2264

243

2320

244

2321

245
÷
00F7

246

2248

247
°
00B0

248

2219

249
·
00B7

250

221A

251

207F

252
²
00B2

253

25A0

254
NBSP
00A0

255

Notes for implementors of mapping tables to Unicode

Implementors of mapping tables to Unicode should note that the MIK Code page unifies some characters:

  1. 0xE1 is both the German sharp S (U+00DF, ß) and the Greek lowercase beta (U+03B2, β);
  2. 0xE4 is both the n-ary summation sign (U+2211, ∑) and the Greek uppercase sigma (U+03A3, Σ);
  3. 0xE6 is both the micro sign (U+00B5, µ) and the Greek lowercase mu (U+03BC, μ);
  4. 0xEA is both the Ohm sign (U+2126, Ω) and the Greek uppercase omega (U+03A9, Ω);
  5. 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.

External links

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

Similar information about the characters unification is given in Markus Kuhn's UTF-8 and Unicode FAQ for Unix/Linux

For more information about the range of 0xE0 to 0xFF please see the Microsoft Code Page 437 reference chart