Coverage Report

Created: 2025-06-13 06:29

/src/gdal/port/cpl_character_sets.c
Line
Count
Source (jump to first uncovered line)
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 */
9
static 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 */
141
static 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 */
273
static 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 */
405
static 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 */
537
static 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 */
669
static 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
801
const CPLCodePageConvTable* CPLGetConversionTableToUTF8(const char* pszEncoding)
802
0
{
803
0
    if (EQUAL(pszEncoding, "CP437"))
804
0
        return &CPL_CP437_to_UTF8;
805
0
    if (EQUAL(pszEncoding, "CP1250"))
806
0
        return &CPL_CP1250_to_UTF8;
807
0
    if (EQUAL(pszEncoding, "CP1251"))
808
0
        return &CPL_CP1251_to_UTF8;
809
0
    if (EQUAL(pszEncoding, "CP1252"))
810
0
        return &CPL_CP1252_to_UTF8;
811
0
    if (EQUAL(pszEncoding, "ISO-8859-2"))
812
0
        return &CPL_ISO_8859_2_to_UTF8;
813
0
    if (EQUAL(pszEncoding, "ISO-8859-15"))
814
0
        return &CPL_ISO_8859_15_to_UTF8;
815
0
    return CPL_NULLPTR;
816
0
}
817
818
/* clang-format on */