GDAL
cpl_character_sets.c
1/* This file has been generated by generate_character_set_conv_tables.c */
2/* DO NOT EDIT !*/
3
4/* clang-format off */
5#include "cpl_port.h"
6#include "cpl_character_sets.h"
7
8/* Character set of original IBM PC */
9static const CPLCodePageConvTable CPL_CP437_to_UTF8 = {
10 {0xC3, 0x87, 0x00},
11 {0xC3, 0xBC, 0x00},
12 {0xC3, 0xA9, 0x00},
13 {0xC3, 0xA2, 0x00},
14 {0xC3, 0xA4, 0x00},
15 {0xC3, 0xA0, 0x00},
16 {0xC3, 0xA5, 0x00},
17 {0xC3, 0xA7, 0x00},
18 {0xC3, 0xAA, 0x00},
19 {0xC3, 0xAB, 0x00},
20 {0xC3, 0xA8, 0x00},
21 {0xC3, 0xAF, 0x00},
22 {0xC3, 0xAE, 0x00},
23 {0xC3, 0xAC, 0x00},
24 {0xC3, 0x84, 0x00},
25 {0xC3, 0x85, 0x00},
26 {0xC3, 0x89, 0x00},
27 {0xC3, 0xA6, 0x00},
28 {0xC3, 0x86, 0x00},
29 {0xC3, 0xB4, 0x00},
30 {0xC3, 0xB6, 0x00},
31 {0xC3, 0xB2, 0x00},
32 {0xC3, 0xBB, 0x00},
33 {0xC3, 0xB9, 0x00},
34 {0xC3, 0xBF, 0x00},
35 {0xC3, 0x96, 0x00},
36 {0xC3, 0x9C, 0x00},
37 {0xC2, 0xA2, 0x00},
38 {0xC2, 0xA3, 0x00},
39 {0xC2, 0xA5, 0x00},
40 {0xE2, 0x82, 0xA7},
41 {0xC6, 0x92, 0x00},
42 {0xC3, 0xA1, 0x00},
43 {0xC3, 0xAD, 0x00},
44 {0xC3, 0xB3, 0x00},
45 {0xC3, 0xBA, 0x00},
46 {0xC3, 0xB1, 0x00},
47 {0xC3, 0x91, 0x00},
48 {0xC2, 0xAA, 0x00},
49 {0xC2, 0xBA, 0x00},
50 {0xC2, 0xBF, 0x00},
51 {0xE2, 0x8C, 0x90},
52 {0xC2, 0xAC, 0x00},
53 {0xC2, 0xBD, 0x00},
54 {0xC2, 0xBC, 0x00},
55 {0xC2, 0xA1, 0x00},
56 {0xC2, 0xAB, 0x00},
57 {0xC2, 0xBB, 0x00},
58 {0xE2, 0x96, 0x91},
59 {0xE2, 0x96, 0x92},
60 {0xE2, 0x96, 0x93},
61 {0xE2, 0x94, 0x82},
62 {0xE2, 0x94, 0xA4},
63 {0xE2, 0x95, 0xA1},
64 {0xE2, 0x95, 0xA2},
65 {0xE2, 0x95, 0x96},
66 {0xE2, 0x95, 0x95},
67 {0xE2, 0x95, 0xA3},
68 {0xE2, 0x95, 0x91},
69 {0xE2, 0x95, 0x97},
70 {0xE2, 0x95, 0x9D},
71 {0xE2, 0x95, 0x9C},
72 {0xE2, 0x95, 0x9B},
73 {0xE2, 0x94, 0x90},
74 {0xE2, 0x94, 0x94},
75 {0xE2, 0x94, 0xB4},
76 {0xE2, 0x94, 0xAC},
77 {0xE2, 0x94, 0x9C},
78 {0xE2, 0x94, 0x80},
79 {0xE2, 0x94, 0xBC},
80 {0xE2, 0x95, 0x9E},
81 {0xE2, 0x95, 0x9F},
82 {0xE2, 0x95, 0x9A},
83 {0xE2, 0x95, 0x94},
84 {0xE2, 0x95, 0xA9},
85 {0xE2, 0x95, 0xA6},
86 {0xE2, 0x95, 0xA0},
87 {0xE2, 0x95, 0x90},
88 {0xE2, 0x95, 0xAC},
89 {0xE2, 0x95, 0xA7},
90 {0xE2, 0x95, 0xA8},
91 {0xE2, 0x95, 0xA4},
92 {0xE2, 0x95, 0xA5},
93 {0xE2, 0x95, 0x99},
94 {0xE2, 0x95, 0x98},
95 {0xE2, 0x95, 0x92},
96 {0xE2, 0x95, 0x93},
97 {0xE2, 0x95, 0xAB},
98 {0xE2, 0x95, 0xAA},
99 {0xE2, 0x94, 0x98},
100 {0xE2, 0x94, 0x8C},
101 {0xE2, 0x96, 0x88},
102 {0xE2, 0x96, 0x84},
103 {0xE2, 0x96, 0x8C},
104 {0xE2, 0x96, 0x90},
105 {0xE2, 0x96, 0x80},
106 {0xCE, 0xB1, 0x00},
107 {0xC3, 0x9F, 0x00},
108 {0xCE, 0x93, 0x00},
109 {0xCF, 0x80, 0x00},
110 {0xCE, 0xA3, 0x00},
111 {0xCF, 0x83, 0x00},
112 {0xC2, 0xB5, 0x00},
113 {0xCF, 0x84, 0x00},
114 {0xCE, 0xA6, 0x00},
115 {0xCE, 0x98, 0x00},
116 {0xCE, 0xA9, 0x00},
117 {0xCE, 0xB4, 0x00},
118 {0xE2, 0x88, 0x9E},
119 {0xCF, 0x86, 0x00},
120 {0xCE, 0xB5, 0x00},
121 {0xE2, 0x88, 0xA9},
122 {0xE2, 0x89, 0xA1},
123 {0xC2, 0xB1, 0x00},
124 {0xE2, 0x89, 0xA5},
125 {0xE2, 0x89, 0xA4},
126 {0xE2, 0x8C, 0xA0},
127 {0xE2, 0x8C, 0xA1},
128 {0xC3, 0xB7, 0x00},
129 {0xE2, 0x89, 0x88},
130 {0xC2, 0xB0, 0x00},
131 {0xE2, 0x88, 0x99},
132 {0xC2, 0xB7, 0x00},
133 {0xE2, 0x88, 0x9A},
134 {0xE2, 0x81, 0xBF},
135 {0xC2, 0xB2, 0x00},
136 {0xE2, 0x96, 0xA0},
137 {0xC2, 0xA0, 0x00},
138};
139
140/* Central and eastern Europe languages */
141static const CPLCodePageConvTable CPL_CP1250_to_UTF8 = {
142 {0xE2, 0x82, 0xAC},
143 {0, 0, 0}, /* invalid */
144 {0xE2, 0x80, 0x9A},
145 {0, 0, 0}, /* invalid */
146 {0xE2, 0x80, 0x9E},
147 {0xE2, 0x80, 0xA6},
148 {0xE2, 0x80, 0xA0},
149 {0xE2, 0x80, 0xA1},
150 {0, 0, 0}, /* invalid */
151 {0xE2, 0x80, 0xB0},
152 {0xC5, 0xA0, 0x00},
153 {0xE2, 0x80, 0xB9},
154 {0xC5, 0x9A, 0x00},
155 {0xC5, 0xA4, 0x00},
156 {0xC5, 0xBD, 0x00},
157 {0xC5, 0xB9, 0x00},
158 {0, 0, 0}, /* invalid */
159 {0xE2, 0x80, 0x98},
160 {0xE2, 0x80, 0x99},
161 {0xE2, 0x80, 0x9C},
162 {0xE2, 0x80, 0x9D},
163 {0xE2, 0x80, 0xA2},
164 {0xE2, 0x80, 0x93},
165 {0xE2, 0x80, 0x94},
166 {0, 0, 0}, /* invalid */
167 {0xE2, 0x84, 0xA2},
168 {0xC5, 0xA1, 0x00},
169 {0xE2, 0x80, 0xBA},
170 {0xC5, 0x9B, 0x00},
171 {0xC5, 0xA5, 0x00},
172 {0xC5, 0xBE, 0x00},
173 {0xC5, 0xBA, 0x00},
174 {0xC2, 0xA0, 0x00},
175 {0xCB, 0x87, 0x00},
176 {0xCB, 0x98, 0x00},
177 {0xC5, 0x81, 0x00},
178 {0xC2, 0xA4, 0x00},
179 {0xC4, 0x84, 0x00},
180 {0xC2, 0xA6, 0x00},
181 {0xC2, 0xA7, 0x00},
182 {0xC2, 0xA8, 0x00},
183 {0xC2, 0xA9, 0x00},
184 {0xC5, 0x9E, 0x00},
185 {0xC2, 0xAB, 0x00},
186 {0xC2, 0xAC, 0x00},
187 {0xC2, 0xAD, 0x00},
188 {0xC2, 0xAE, 0x00},
189 {0xC5, 0xBB, 0x00},
190 {0xC2, 0xB0, 0x00},
191 {0xC2, 0xB1, 0x00},
192 {0xCB, 0x9B, 0x00},
193 {0xC5, 0x82, 0x00},
194 {0xC2, 0xB4, 0x00},
195 {0xC2, 0xB5, 0x00},
196 {0xC2, 0xB6, 0x00},
197 {0xC2, 0xB7, 0x00},
198 {0xC2, 0xB8, 0x00},
199 {0xC4, 0x85, 0x00},
200 {0xC5, 0x9F, 0x00},
201 {0xC2, 0xBB, 0x00},
202 {0xC4, 0xBD, 0x00},
203 {0xCB, 0x9D, 0x00},
204 {0xC4, 0xBE, 0x00},
205 {0xC5, 0xBC, 0x00},
206 {0xC5, 0x94, 0x00},
207 {0xC3, 0x81, 0x00},
208 {0xC3, 0x82, 0x00},
209 {0xC4, 0x82, 0x00},
210 {0xC3, 0x84, 0x00},
211 {0xC4, 0xB9, 0x00},
212 {0xC4, 0x86, 0x00},
213 {0xC3, 0x87, 0x00},
214 {0xC4, 0x8C, 0x00},
215 {0xC3, 0x89, 0x00},
216 {0xC4, 0x98, 0x00},
217 {0xC3, 0x8B, 0x00},
218 {0xC4, 0x9A, 0x00},
219 {0xC3, 0x8D, 0x00},
220 {0xC3, 0x8E, 0x00},
221 {0xC4, 0x8E, 0x00},
222 {0xC4, 0x90, 0x00},
223 {0xC5, 0x83, 0x00},
224 {0xC5, 0x87, 0x00},
225 {0xC3, 0x93, 0x00},
226 {0xC3, 0x94, 0x00},
227 {0xC5, 0x90, 0x00},
228 {0xC3, 0x96, 0x00},
229 {0xC3, 0x97, 0x00},
230 {0xC5, 0x98, 0x00},
231 {0xC5, 0xAE, 0x00},
232 {0xC3, 0x9A, 0x00},
233 {0xC5, 0xB0, 0x00},
234 {0xC3, 0x9C, 0x00},
235 {0xC3, 0x9D, 0x00},
236 {0xC5, 0xA2, 0x00},
237 {0xC3, 0x9F, 0x00},
238 {0xC5, 0x95, 0x00},
239 {0xC3, 0xA1, 0x00},
240 {0xC3, 0xA2, 0x00},
241 {0xC4, 0x83, 0x00},
242 {0xC3, 0xA4, 0x00},
243 {0xC4, 0xBA, 0x00},
244 {0xC4, 0x87, 0x00},
245 {0xC3, 0xA7, 0x00},
246 {0xC4, 0x8D, 0x00},
247 {0xC3, 0xA9, 0x00},
248 {0xC4, 0x99, 0x00},
249 {0xC3, 0xAB, 0x00},
250 {0xC4, 0x9B, 0x00},
251 {0xC3, 0xAD, 0x00},
252 {0xC3, 0xAE, 0x00},
253 {0xC4, 0x8F, 0x00},
254 {0xC4, 0x91, 0x00},
255 {0xC5, 0x84, 0x00},
256 {0xC5, 0x88, 0x00},
257 {0xC3, 0xB3, 0x00},
258 {0xC3, 0xB4, 0x00},
259 {0xC5, 0x91, 0x00},
260 {0xC3, 0xB6, 0x00},
261 {0xC3, 0xB7, 0x00},
262 {0xC5, 0x99, 0x00},
263 {0xC5, 0xAF, 0x00},
264 {0xC3, 0xBA, 0x00},
265 {0xC5, 0xB1, 0x00},
266 {0xC3, 0xBC, 0x00},
267 {0xC3, 0xBD, 0x00},
268 {0xC5, 0xA3, 0x00},
269 {0xCB, 0x99, 0x00},
270};
271
272/* Cyrillic script */
273static const CPLCodePageConvTable CPL_CP1251_to_UTF8 = {
274 {0xD0, 0x82, 0x00},
275 {0xD0, 0x83, 0x00},
276 {0xE2, 0x80, 0x9A},
277 {0xD1, 0x93, 0x00},
278 {0xE2, 0x80, 0x9E},
279 {0xE2, 0x80, 0xA6},
280 {0xE2, 0x80, 0xA0},
281 {0xE2, 0x80, 0xA1},
282 {0xE2, 0x82, 0xAC},
283 {0xE2, 0x80, 0xB0},
284 {0xD0, 0x89, 0x00},
285 {0xE2, 0x80, 0xB9},
286 {0xD0, 0x8A, 0x00},
287 {0xD0, 0x8C, 0x00},
288 {0xD0, 0x8B, 0x00},
289 {0xD0, 0x8F, 0x00},
290 {0xD1, 0x92, 0x00},
291 {0xE2, 0x80, 0x98},
292 {0xE2, 0x80, 0x99},
293 {0xE2, 0x80, 0x9C},
294 {0xE2, 0x80, 0x9D},
295 {0xE2, 0x80, 0xA2},
296 {0xE2, 0x80, 0x93},
297 {0xE2, 0x80, 0x94},
298 {0, 0, 0}, /* invalid */
299 {0xE2, 0x84, 0xA2},
300 {0xD1, 0x99, 0x00},
301 {0xE2, 0x80, 0xBA},
302 {0xD1, 0x9A, 0x00},
303 {0xD1, 0x9C, 0x00},
304 {0xD1, 0x9B, 0x00},
305 {0xD1, 0x9F, 0x00},
306 {0xC2, 0xA0, 0x00},
307 {0xD0, 0x8E, 0x00},
308 {0xD1, 0x9E, 0x00},
309 {0xD0, 0x88, 0x00},
310 {0xC2, 0xA4, 0x00},
311 {0xD2, 0x90, 0x00},
312 {0xC2, 0xA6, 0x00},
313 {0xC2, 0xA7, 0x00},
314 {0xD0, 0x81, 0x00},
315 {0xC2, 0xA9, 0x00},
316 {0xD0, 0x84, 0x00},
317 {0xC2, 0xAB, 0x00},
318 {0xC2, 0xAC, 0x00},
319 {0xC2, 0xAD, 0x00},
320 {0xC2, 0xAE, 0x00},
321 {0xD0, 0x87, 0x00},
322 {0xC2, 0xB0, 0x00},
323 {0xC2, 0xB1, 0x00},
324 {0xD0, 0x86, 0x00},
325 {0xD1, 0x96, 0x00},
326 {0xD2, 0x91, 0x00},
327 {0xC2, 0xB5, 0x00},
328 {0xC2, 0xB6, 0x00},
329 {0xC2, 0xB7, 0x00},
330 {0xD1, 0x91, 0x00},
331 {0xE2, 0x84, 0x96},
332 {0xD1, 0x94, 0x00},
333 {0xC2, 0xBB, 0x00},
334 {0xD1, 0x98, 0x00},
335 {0xD0, 0x85, 0x00},
336 {0xD1, 0x95, 0x00},
337 {0xD1, 0x97, 0x00},
338 {0xD0, 0x90, 0x00},
339 {0xD0, 0x91, 0x00},
340 {0xD0, 0x92, 0x00},
341 {0xD0, 0x93, 0x00},
342 {0xD0, 0x94, 0x00},
343 {0xD0, 0x95, 0x00},
344 {0xD0, 0x96, 0x00},
345 {0xD0, 0x97, 0x00},
346 {0xD0, 0x98, 0x00},
347 {0xD0, 0x99, 0x00},
348 {0xD0, 0x9A, 0x00},
349 {0xD0, 0x9B, 0x00},
350 {0xD0, 0x9C, 0x00},
351 {0xD0, 0x9D, 0x00},
352 {0xD0, 0x9E, 0x00},
353 {0xD0, 0x9F, 0x00},
354 {0xD0, 0xA0, 0x00},
355 {0xD0, 0xA1, 0x00},
356 {0xD0, 0xA2, 0x00},
357 {0xD0, 0xA3, 0x00},
358 {0xD0, 0xA4, 0x00},
359 {0xD0, 0xA5, 0x00},
360 {0xD0, 0xA6, 0x00},
361 {0xD0, 0xA7, 0x00},
362 {0xD0, 0xA8, 0x00},
363 {0xD0, 0xA9, 0x00},
364 {0xD0, 0xAA, 0x00},
365 {0xD0, 0xAB, 0x00},
366 {0xD0, 0xAC, 0x00},
367 {0xD0, 0xAD, 0x00},
368 {0xD0, 0xAE, 0x00},
369 {0xD0, 0xAF, 0x00},
370 {0xD0, 0xB0, 0x00},
371 {0xD0, 0xB1, 0x00},
372 {0xD0, 0xB2, 0x00},
373 {0xD0, 0xB3, 0x00},
374 {0xD0, 0xB4, 0x00},
375 {0xD0, 0xB5, 0x00},
376 {0xD0, 0xB6, 0x00},
377 {0xD0, 0xB7, 0x00},
378 {0xD0, 0xB8, 0x00},
379 {0xD0, 0xB9, 0x00},
380 {0xD0, 0xBA, 0x00},
381 {0xD0, 0xBB, 0x00},
382 {0xD0, 0xBC, 0x00},
383 {0xD0, 0xBD, 0x00},
384 {0xD0, 0xBE, 0x00},
385 {0xD0, 0xBF, 0x00},
386 {0xD1, 0x80, 0x00},
387 {0xD1, 0x81, 0x00},
388 {0xD1, 0x82, 0x00},
389 {0xD1, 0x83, 0x00},
390 {0xD1, 0x84, 0x00},
391 {0xD1, 0x85, 0x00},
392 {0xD1, 0x86, 0x00},
393 {0xD1, 0x87, 0x00},
394 {0xD1, 0x88, 0x00},
395 {0xD1, 0x89, 0x00},
396 {0xD1, 0x8A, 0x00},
397 {0xD1, 0x8B, 0x00},
398 {0xD1, 0x8C, 0x00},
399 {0xD1, 0x8D, 0x00},
400 {0xD1, 0x8E, 0x00},
401 {0xD1, 0x8F, 0x00},
402};
403
404/* Legacy Windows single-byte character set used in a lot of countries */
405static const CPLCodePageConvTable CPL_CP1252_to_UTF8 = {
406 {0xE2, 0x82, 0xAC},
407 {0, 0, 0}, /* invalid */
408 {0xE2, 0x80, 0x9A},
409 {0xC6, 0x92, 0x00},
410 {0xE2, 0x80, 0x9E},
411 {0xE2, 0x80, 0xA6},
412 {0xE2, 0x80, 0xA0},
413 {0xE2, 0x80, 0xA1},
414 {0xCB, 0x86, 0x00},
415 {0xE2, 0x80, 0xB0},
416 {0xC5, 0xA0, 0x00},
417 {0xE2, 0x80, 0xB9},
418 {0xC5, 0x92, 0x00},
419 {0, 0, 0}, /* invalid */
420 {0xC5, 0xBD, 0x00},
421 {0, 0, 0}, /* invalid */
422 {0, 0, 0}, /* invalid */
423 {0xE2, 0x80, 0x98},
424 {0xE2, 0x80, 0x99},
425 {0xE2, 0x80, 0x9C},
426 {0xE2, 0x80, 0x9D},
427 {0xE2, 0x80, 0xA2},
428 {0xE2, 0x80, 0x93},
429 {0xE2, 0x80, 0x94},
430 {0xCB, 0x9C, 0x00},
431 {0xE2, 0x84, 0xA2},
432 {0xC5, 0xA1, 0x00},
433 {0xE2, 0x80, 0xBA},
434 {0xC5, 0x93, 0x00},
435 {0, 0, 0}, /* invalid */
436 {0xC5, 0xBE, 0x00},
437 {0xC5, 0xB8, 0x00},
438 {0xC2, 0xA0, 0x00},
439 {0xC2, 0xA1, 0x00},
440 {0xC2, 0xA2, 0x00},
441 {0xC2, 0xA3, 0x00},
442 {0xC2, 0xA4, 0x00},
443 {0xC2, 0xA5, 0x00},
444 {0xC2, 0xA6, 0x00},
445 {0xC2, 0xA7, 0x00},
446 {0xC2, 0xA8, 0x00},
447 {0xC2, 0xA9, 0x00},
448 {0xC2, 0xAA, 0x00},
449 {0xC2, 0xAB, 0x00},
450 {0xC2, 0xAC, 0x00},
451 {0xC2, 0xAD, 0x00},
452 {0xC2, 0xAE, 0x00},
453 {0xC2, 0xAF, 0x00},
454 {0xC2, 0xB0, 0x00},
455 {0xC2, 0xB1, 0x00},
456 {0xC2, 0xB2, 0x00},
457 {0xC2, 0xB3, 0x00},
458 {0xC2, 0xB4, 0x00},
459 {0xC2, 0xB5, 0x00},
460 {0xC2, 0xB6, 0x00},
461 {0xC2, 0xB7, 0x00},
462 {0xC2, 0xB8, 0x00},
463 {0xC2, 0xB9, 0x00},
464 {0xC2, 0xBA, 0x00},
465 {0xC2, 0xBB, 0x00},
466 {0xC2, 0xBC, 0x00},
467 {0xC2, 0xBD, 0x00},
468 {0xC2, 0xBE, 0x00},
469 {0xC2, 0xBF, 0x00},
470 {0xC3, 0x80, 0x00},
471 {0xC3, 0x81, 0x00},
472 {0xC3, 0x82, 0x00},
473 {0xC3, 0x83, 0x00},
474 {0xC3, 0x84, 0x00},
475 {0xC3, 0x85, 0x00},
476 {0xC3, 0x86, 0x00},
477 {0xC3, 0x87, 0x00},
478 {0xC3, 0x88, 0x00},
479 {0xC3, 0x89, 0x00},
480 {0xC3, 0x8A, 0x00},
481 {0xC3, 0x8B, 0x00},
482 {0xC3, 0x8C, 0x00},
483 {0xC3, 0x8D, 0x00},
484 {0xC3, 0x8E, 0x00},
485 {0xC3, 0x8F, 0x00},
486 {0xC3, 0x90, 0x00},
487 {0xC3, 0x91, 0x00},
488 {0xC3, 0x92, 0x00},
489 {0xC3, 0x93, 0x00},
490 {0xC3, 0x94, 0x00},
491 {0xC3, 0x95, 0x00},
492 {0xC3, 0x96, 0x00},
493 {0xC3, 0x97, 0x00},
494 {0xC3, 0x98, 0x00},
495 {0xC3, 0x99, 0x00},
496 {0xC3, 0x9A, 0x00},
497 {0xC3, 0x9B, 0x00},
498 {0xC3, 0x9C, 0x00},
499 {0xC3, 0x9D, 0x00},
500 {0xC3, 0x9E, 0x00},
501 {0xC3, 0x9F, 0x00},
502 {0xC3, 0xA0, 0x00},
503 {0xC3, 0xA1, 0x00},
504 {0xC3, 0xA2, 0x00},
505 {0xC3, 0xA3, 0x00},
506 {0xC3, 0xA4, 0x00},
507 {0xC3, 0xA5, 0x00},
508 {0xC3, 0xA6, 0x00},
509 {0xC3, 0xA7, 0x00},
510 {0xC3, 0xA8, 0x00},
511 {0xC3, 0xA9, 0x00},
512 {0xC3, 0xAA, 0x00},
513 {0xC3, 0xAB, 0x00},
514 {0xC3, 0xAC, 0x00},
515 {0xC3, 0xAD, 0x00},
516 {0xC3, 0xAE, 0x00},
517 {0xC3, 0xAF, 0x00},
518 {0xC3, 0xB0, 0x00},
519 {0xC3, 0xB1, 0x00},
520 {0xC3, 0xB2, 0x00},
521 {0xC3, 0xB3, 0x00},
522 {0xC3, 0xB4, 0x00},
523 {0xC3, 0xB5, 0x00},
524 {0xC3, 0xB6, 0x00},
525 {0xC3, 0xB7, 0x00},
526 {0xC3, 0xB8, 0x00},
527 {0xC3, 0xB9, 0x00},
528 {0xC3, 0xBA, 0x00},
529 {0xC3, 0xBB, 0x00},
530 {0xC3, 0xBC, 0x00},
531 {0xC3, 0xBD, 0x00},
532 {0xC3, 0xBE, 0x00},
533 {0xC3, 0xBF, 0x00},
534};
535
536/* Central Europe languages */
537static const CPLCodePageConvTable CPL_ISO_8859_2_to_UTF8 = {
538 {0xC2, 0x80, 0x00},
539 {0xC2, 0x81, 0x00},
540 {0xC2, 0x82, 0x00},
541 {0xC2, 0x83, 0x00},
542 {0xC2, 0x84, 0x00},
543 {0xC2, 0x85, 0x00},
544 {0xC2, 0x86, 0x00},
545 {0xC2, 0x87, 0x00},
546 {0xC2, 0x88, 0x00},
547 {0xC2, 0x89, 0x00},
548 {0xC2, 0x8A, 0x00},
549 {0xC2, 0x8B, 0x00},
550 {0xC2, 0x8C, 0x00},
551 {0xC2, 0x8D, 0x00},
552 {0xC2, 0x8E, 0x00},
553 {0xC2, 0x8F, 0x00},
554 {0xC2, 0x90, 0x00},
555 {0xC2, 0x91, 0x00},
556 {0xC2, 0x92, 0x00},
557 {0xC2, 0x93, 0x00},
558 {0xC2, 0x94, 0x00},
559 {0xC2, 0x95, 0x00},
560 {0xC2, 0x96, 0x00},
561 {0xC2, 0x97, 0x00},
562 {0xC2, 0x98, 0x00},
563 {0xC2, 0x99, 0x00},
564 {0xC2, 0x9A, 0x00},
565 {0xC2, 0x9B, 0x00},
566 {0xC2, 0x9C, 0x00},
567 {0xC2, 0x9D, 0x00},
568 {0xC2, 0x9E, 0x00},
569 {0xC2, 0x9F, 0x00},
570 {0xC2, 0xA0, 0x00},
571 {0xC4, 0x84, 0x00},
572 {0xCB, 0x98, 0x00},
573 {0xC5, 0x81, 0x00},
574 {0xC2, 0xA4, 0x00},
575 {0xC4, 0xBD, 0x00},
576 {0xC5, 0x9A, 0x00},
577 {0xC2, 0xA7, 0x00},
578 {0xC2, 0xA8, 0x00},
579 {0xC5, 0xA0, 0x00},
580 {0xC5, 0x9E, 0x00},
581 {0xC5, 0xA4, 0x00},
582 {0xC5, 0xB9, 0x00},
583 {0xC2, 0xAD, 0x00},
584 {0xC5, 0xBD, 0x00},
585 {0xC5, 0xBB, 0x00},
586 {0xC2, 0xB0, 0x00},
587 {0xC4, 0x85, 0x00},
588 {0xCB, 0x9B, 0x00},
589 {0xC5, 0x82, 0x00},
590 {0xC2, 0xB4, 0x00},
591 {0xC4, 0xBE, 0x00},
592 {0xC5, 0x9B, 0x00},
593 {0xCB, 0x87, 0x00},
594 {0xC2, 0xB8, 0x00},
595 {0xC5, 0xA1, 0x00},
596 {0xC5, 0x9F, 0x00},
597 {0xC5, 0xA5, 0x00},
598 {0xC5, 0xBA, 0x00},
599 {0xCB, 0x9D, 0x00},
600 {0xC5, 0xBE, 0x00},
601 {0xC5, 0xBC, 0x00},
602 {0xC5, 0x94, 0x00},
603 {0xC3, 0x81, 0x00},
604 {0xC3, 0x82, 0x00},
605 {0xC4, 0x82, 0x00},
606 {0xC3, 0x84, 0x00},
607 {0xC4, 0xB9, 0x00},
608 {0xC4, 0x86, 0x00},
609 {0xC3, 0x87, 0x00},
610 {0xC4, 0x8C, 0x00},
611 {0xC3, 0x89, 0x00},
612 {0xC4, 0x98, 0x00},
613 {0xC3, 0x8B, 0x00},
614 {0xC4, 0x9A, 0x00},
615 {0xC3, 0x8D, 0x00},
616 {0xC3, 0x8E, 0x00},
617 {0xC4, 0x8E, 0x00},
618 {0xC4, 0x90, 0x00},
619 {0xC5, 0x83, 0x00},
620 {0xC5, 0x87, 0x00},
621 {0xC3, 0x93, 0x00},
622 {0xC3, 0x94, 0x00},
623 {0xC5, 0x90, 0x00},
624 {0xC3, 0x96, 0x00},
625 {0xC3, 0x97, 0x00},
626 {0xC5, 0x98, 0x00},
627 {0xC5, 0xAE, 0x00},
628 {0xC3, 0x9A, 0x00},
629 {0xC5, 0xB0, 0x00},
630 {0xC3, 0x9C, 0x00},
631 {0xC3, 0x9D, 0x00},
632 {0xC5, 0xA2, 0x00},
633 {0xC3, 0x9F, 0x00},
634 {0xC5, 0x95, 0x00},
635 {0xC3, 0xA1, 0x00},
636 {0xC3, 0xA2, 0x00},
637 {0xC4, 0x83, 0x00},
638 {0xC3, 0xA4, 0x00},
639 {0xC4, 0xBA, 0x00},
640 {0xC4, 0x87, 0x00},
641 {0xC3, 0xA7, 0x00},
642 {0xC4, 0x8D, 0x00},
643 {0xC3, 0xA9, 0x00},
644 {0xC4, 0x99, 0x00},
645 {0xC3, 0xAB, 0x00},
646 {0xC4, 0x9B, 0x00},
647 {0xC3, 0xAD, 0x00},
648 {0xC3, 0xAE, 0x00},
649 {0xC4, 0x8F, 0x00},
650 {0xC4, 0x91, 0x00},
651 {0xC5, 0x84, 0x00},
652 {0xC5, 0x88, 0x00},
653 {0xC3, 0xB3, 0x00},
654 {0xC3, 0xB4, 0x00},
655 {0xC5, 0x91, 0x00},
656 {0xC3, 0xB6, 0x00},
657 {0xC3, 0xB7, 0x00},
658 {0xC5, 0x99, 0x00},
659 {0xC5, 0xAF, 0x00},
660 {0xC3, 0xBA, 0x00},
661 {0xC5, 0xB1, 0x00},
662 {0xC3, 0xBC, 0x00},
663 {0xC3, 0xBD, 0x00},
664 {0xC5, 0xA3, 0x00},
665 {0xCB, 0x99, 0x00},
666};
667
668/* New Western Europe */
669static const CPLCodePageConvTable CPL_ISO_8859_15_to_UTF8 = {
670 {0xC2, 0x80, 0x00},
671 {0xC2, 0x81, 0x00},
672 {0xC2, 0x82, 0x00},
673 {0xC2, 0x83, 0x00},
674 {0xC2, 0x84, 0x00},
675 {0xC2, 0x85, 0x00},
676 {0xC2, 0x86, 0x00},
677 {0xC2, 0x87, 0x00},
678 {0xC2, 0x88, 0x00},
679 {0xC2, 0x89, 0x00},
680 {0xC2, 0x8A, 0x00},
681 {0xC2, 0x8B, 0x00},
682 {0xC2, 0x8C, 0x00},
683 {0xC2, 0x8D, 0x00},
684 {0xC2, 0x8E, 0x00},
685 {0xC2, 0x8F, 0x00},
686 {0xC2, 0x90, 0x00},
687 {0xC2, 0x91, 0x00},
688 {0xC2, 0x92, 0x00},
689 {0xC2, 0x93, 0x00},
690 {0xC2, 0x94, 0x00},
691 {0xC2, 0x95, 0x00},
692 {0xC2, 0x96, 0x00},
693 {0xC2, 0x97, 0x00},
694 {0xC2, 0x98, 0x00},
695 {0xC2, 0x99, 0x00},
696 {0xC2, 0x9A, 0x00},
697 {0xC2, 0x9B, 0x00},
698 {0xC2, 0x9C, 0x00},
699 {0xC2, 0x9D, 0x00},
700 {0xC2, 0x9E, 0x00},
701 {0xC2, 0x9F, 0x00},
702 {0xC2, 0xA0, 0x00},
703 {0xC2, 0xA1, 0x00},
704 {0xC2, 0xA2, 0x00},
705 {0xC2, 0xA3, 0x00},
706 {0xE2, 0x82, 0xAC},
707 {0xC2, 0xA5, 0x00},
708 {0xC5, 0xA0, 0x00},
709 {0xC2, 0xA7, 0x00},
710 {0xC5, 0xA1, 0x00},
711 {0xC2, 0xA9, 0x00},
712 {0xC2, 0xAA, 0x00},
713 {0xC2, 0xAB, 0x00},
714 {0xC2, 0xAC, 0x00},
715 {0xC2, 0xAD, 0x00},
716 {0xC2, 0xAE, 0x00},
717 {0xC2, 0xAF, 0x00},
718 {0xC2, 0xB0, 0x00},
719 {0xC2, 0xB1, 0x00},
720 {0xC2, 0xB2, 0x00},
721 {0xC2, 0xB3, 0x00},
722 {0xC5, 0xBD, 0x00},
723 {0xC2, 0xB5, 0x00},
724 {0xC2, 0xB6, 0x00},
725 {0xC2, 0xB7, 0x00},
726 {0xC5, 0xBE, 0x00},
727 {0xC2, 0xB9, 0x00},
728 {0xC2, 0xBA, 0x00},
729 {0xC2, 0xBB, 0x00},
730 {0xC5, 0x92, 0x00},
731 {0xC5, 0x93, 0x00},
732 {0xC5, 0xB8, 0x00},
733 {0xC2, 0xBF, 0x00},
734 {0xC3, 0x80, 0x00},
735 {0xC3, 0x81, 0x00},
736 {0xC3, 0x82, 0x00},
737 {0xC3, 0x83, 0x00},
738 {0xC3, 0x84, 0x00},
739 {0xC3, 0x85, 0x00},
740 {0xC3, 0x86, 0x00},
741 {0xC3, 0x87, 0x00},
742 {0xC3, 0x88, 0x00},
743 {0xC3, 0x89, 0x00},
744 {0xC3, 0x8A, 0x00},
745 {0xC3, 0x8B, 0x00},
746 {0xC3, 0x8C, 0x00},
747 {0xC3, 0x8D, 0x00},
748 {0xC3, 0x8E, 0x00},
749 {0xC3, 0x8F, 0x00},
750 {0xC3, 0x90, 0x00},
751 {0xC3, 0x91, 0x00},
752 {0xC3, 0x92, 0x00},
753 {0xC3, 0x93, 0x00},
754 {0xC3, 0x94, 0x00},
755 {0xC3, 0x95, 0x00},
756 {0xC3, 0x96, 0x00},
757 {0xC3, 0x97, 0x00},
758 {0xC3, 0x98, 0x00},
759 {0xC3, 0x99, 0x00},
760 {0xC3, 0x9A, 0x00},
761 {0xC3, 0x9B, 0x00},
762 {0xC3, 0x9C, 0x00},
763 {0xC3, 0x9D, 0x00},
764 {0xC3, 0x9E, 0x00},
765 {0xC3, 0x9F, 0x00},
766 {0xC3, 0xA0, 0x00},
767 {0xC3, 0xA1, 0x00},
768 {0xC3, 0xA2, 0x00},
769 {0xC3, 0xA3, 0x00},
770 {0xC3, 0xA4, 0x00},
771 {0xC3, 0xA5, 0x00},
772 {0xC3, 0xA6, 0x00},
773 {0xC3, 0xA7, 0x00},
774 {0xC3, 0xA8, 0x00},
775 {0xC3, 0xA9, 0x00},
776 {0xC3, 0xAA, 0x00},
777 {0xC3, 0xAB, 0x00},
778 {0xC3, 0xAC, 0x00},
779 {0xC3, 0xAD, 0x00},
780 {0xC3, 0xAE, 0x00},
781 {0xC3, 0xAF, 0x00},
782 {0xC3, 0xB0, 0x00},
783 {0xC3, 0xB1, 0x00},
784 {0xC3, 0xB2, 0x00},
785 {0xC3, 0xB3, 0x00},
786 {0xC3, 0xB4, 0x00},
787 {0xC3, 0xB5, 0x00},
788 {0xC3, 0xB6, 0x00},
789 {0xC3, 0xB7, 0x00},
790 {0xC3, 0xB8, 0x00},
791 {0xC3, 0xB9, 0x00},
792 {0xC3, 0xBA, 0x00},
793 {0xC3, 0xBB, 0x00},
794 {0xC3, 0xBC, 0x00},
795 {0xC3, 0xBD, 0x00},
796 {0xC3, 0xBE, 0x00},
797 {0xC3, 0xBF, 0x00},
798};
799
800
801const CPLCodePageConvTable* CPLGetConversionTableToUTF8(const char* pszEncoding)
802{
803 if (EQUAL(pszEncoding, "CP437"))
804 return &CPL_CP437_to_UTF8;
805 if (EQUAL(pszEncoding, "CP1250"))
806 return &CPL_CP1250_to_UTF8;
807 if (EQUAL(pszEncoding, "CP1251"))
808 return &CPL_CP1251_to_UTF8;
809 if (EQUAL(pszEncoding, "CP1252"))
810 return &CPL_CP1252_to_UTF8;
811 if (EQUAL(pszEncoding, "ISO-8859-2"))
812 return &CPL_ISO_8859_2_to_UTF8;
813 if (EQUAL(pszEncoding, "ISO-8859-15"))
814 return &CPL_ISO_8859_15_to_UTF8;
815 return CPL_NULLPTR;
816}
817
818/* clang-format on */
Core portability definitions for CPL.
#define EQUAL(a, b)
Alias for strcasecmp() == 0.
Definition cpl_port.h:541