File Coverage

blib/lib/Locale/RecodeData/IBM290.pm
Criterion Covered Total %
statement 12 12 100.0
branch 4 4 100.0
condition 3 3 100.0
subroutine 3 3 100.0
pod n/a
total 22 22 100.0


line stmt bran cond sub pod time code
1             #! /bin/false
2             # vim: set autoindent shiftwidth=4 tabstop=4:
3              
4             # Conversion routines for IBM290.
5             # Copyright (C) 2002-2026 Guido Flohr <guido.flohr@cantanea.com>,
6             # all rights reserved.
7              
8             # This program is free software: you can redistribute it and/or modify
9             # it under the terms of the GNU General Public License as published by
10             # the Free Software Foundation; either version 3 of the License, or
11             # (at your option) any later version.
12              
13             # This program is distributed in the hope that it will be useful,
14             # but WITHOUT ANY WARRANTY; without even the implied warranty of
15             # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16             # GNU General Public License for more details.
17              
18             # You should have received a copy of the GNU General Public License
19             # along with this program. If not, see <http://www.gnu.org/licenses/>.
20              
21             package Locale::RecodeData::IBM290;
22              
23 1     1   9 use strict;
  1         3  
  1         70  
24              
25             require Locale::RecodeData;
26 1     1   9 use base qw(Locale::RecodeData);
  1         3  
  1         756  
27              
28             my @to_ucs4 = (
29             0x0000,
30             0x0001,
31             0x0002,
32             0x0003,
33             0x009c,
34             0x0009,
35             0x0086,
36             0x007f,
37             0x0097,
38             0x008d,
39             0x008e,
40             0x000b,
41             0x000c,
42             0x000d,
43             0x000e,
44             0x000f,
45             0x0010,
46             0x0011,
47             0x0012,
48             0x0013,
49             0x009d,
50             0x0085,
51             0x0008,
52             0x0087,
53             0x0018,
54             0x0019,
55             0x0092,
56             0x008f,
57             0x001c,
58             0x001d,
59             0x001e,
60             0x001f,
61             0x0080,
62             0x0081,
63             0x0082,
64             0x0083,
65             0x0084,
66             0x000a,
67             0x0017,
68             0x001b,
69             0x0088,
70             0x0089,
71             0x008a,
72             0x008b,
73             0x008c,
74             0x0005,
75             0x0006,
76             0x0007,
77             0x0090,
78             0x0091,
79             0x0016,
80             0x0093,
81             0x0094,
82             0x0095,
83             0x0096,
84             0x0004,
85             0x0098,
86             0x0099,
87             0x009a,
88             0x009b,
89             0x0014,
90             0x0015,
91             0x009e,
92             0x001a,
93             0x0020,
94             0x3002,
95             0x300c,
96             0x300d,
97             0x3001,
98             0x30fb,
99             0x30f2,
100             0x30a1,
101             0x30a3,
102             0x30a5,
103             0x00a3,
104             0x002e,
105             0x003c,
106             0x0028,
107             0x002b,
108             0x007c,
109             0x0026,
110             0x30a7,
111             0x30a9,
112             0x30e3,
113             0x30e5,
114             0x30e7,
115             0x30c3,
116             0xfffd,
117             0x30fc,
118             0xfffd,
119             0x0021,
120             0x00a5,
121             0x002a,
122             0x0029,
123             0x003b,
124             0x00ac,
125             0x002d,
126             0x002f,
127             0xfffd,
128             0xfffd,
129             0xfffd,
130             0xfffd,
131             0xfffd,
132             0xfffd,
133             0xfffd,
134             0xfffd,
135             0x00a6,
136             0x002c,
137             0x0025,
138             0x005f,
139             0x003e,
140             0x003f,
141             0xfffd,
142             0xfffd,
143             0xfffd,
144             0xfffd,
145             0xfffd,
146             0xfffd,
147             0xfffd,
148             0xfffd,
149             0xfffd,
150             0x0060,
151             0x003a,
152             0x0023,
153             0x0040,
154             0x0027,
155             0x003d,
156             0x0022,
157             0xfffd,
158             0x30a2,
159             0x30a4,
160             0x30a6,
161             0x30a8,
162             0x30aa,
163             0x30ab,
164             0x30ad,
165             0x30af,
166             0x30b1,
167             0x30b3,
168             0xfffd,
169             0x30b5,
170             0x30b7,
171             0x30b9,
172             0x30bb,
173             0x30bd,
174             0x30bf,
175             0x30c1,
176             0x30c4,
177             0x30c6,
178             0x30c8,
179             0x30ca,
180             0x30cb,
181             0x30cc,
182             0x30cd,
183             0x30ce,
184             0xfffd,
185             0xfffd,
186             0x30cf,
187             0x30d2,
188             0x30d5,
189             0xfffd,
190             0x203e,
191             0x30d8,
192             0x30db,
193             0x30de,
194             0x30df,
195             0x30e0,
196             0x30e1,
197             0x30e2,
198             0x30e4,
199             0x30e6,
200             0xfffd,
201             0x30e8,
202             0x30e9,
203             0x30ea,
204             0x30eb,
205             0xfffd,
206             0xfffd,
207             0xfffd,
208             0xfffd,
209             0xfffd,
210             0xfffd,
211             0xfffd,
212             0xfffd,
213             0xfffd,
214             0xfffd,
215             0x30ec,
216             0x30ed,
217             0x30ef,
218             0x30f3,
219             0x309b,
220             0x309c,
221             0xfffd,
222             0x0041,
223             0x0042,
224             0x0043,
225             0x0044,
226             0x0045,
227             0x0046,
228             0x0047,
229             0x0048,
230             0x0049,
231             0xfffd,
232             0xfffd,
233             0xfffd,
234             0xfffd,
235             0xfffd,
236             0xfffd,
237             0xfffd,
238             0x004a,
239             0x004b,
240             0x004c,
241             0x004d,
242             0x004e,
243             0x004f,
244             0x0050,
245             0x0051,
246             0x0052,
247             0xfffd,
248             0xfffd,
249             0xfffd,
250             0xfffd,
251             0xfffd,
252             0xfffd,
253             0x0024,
254             0xfffd,
255             0x0053,
256             0x0054,
257             0x0055,
258             0x0056,
259             0x0057,
260             0x0058,
261             0x0059,
262             0x005a,
263             0xfffd,
264             0xfffd,
265             0xfffd,
266             0xfffd,
267             0xfffd,
268             0xfffd,
269             0x0030,
270             0x0031,
271             0x0032,
272             0x0033,
273             0x0034,
274             0x0035,
275             0x0036,
276             0x0037,
277             0x0038,
278             0x0039,
279             0xfffd,
280             0xfffd,
281             0xfffd,
282             0xfffd,
283             0xfffd,
284             0x009f,
285             );
286              
287             my @to_utf8 = (
288             "\x00",
289             "\x01",
290             "\x02",
291             "\x03",
292             "\xc2\x9c",
293             "\x09",
294             "\xc2\x86",
295             "\x7f",
296             "\xc2\x97",
297             "\xc2\x8d",
298             "\xc2\x8e",
299             "\x0b",
300             "\x0c",
301             "\x0d",
302             "\x0e",
303             "\x0f",
304             "\x10",
305             "\x11",
306             "\x12",
307             "\x13",
308             "\xc2\x9d",
309             "\xc2\x85",
310             "\x08",
311             "\xc2\x87",
312             "\x18",
313             "\x19",
314             "\xc2\x92",
315             "\xc2\x8f",
316             "\x1c",
317             "\x1d",
318             "\x1e",
319             "\x1f",
320             "\xc2\x80",
321             "\xc2\x81",
322             "\xc2\x82",
323             "\xc2\x83",
324             "\xc2\x84",
325             "\x0a",
326             "\x17",
327             "\x1b",
328             "\xc2\x88",
329             "\xc2\x89",
330             "\xc2\x8a",
331             "\xc2\x8b",
332             "\xc2\x8c",
333             "\x05",
334             "\x06",
335             "\x07",
336             "\xc2\x90",
337             "\xc2\x91",
338             "\x16",
339             "\xc2\x93",
340             "\xc2\x94",
341             "\xc2\x95",
342             "\xc2\x96",
343             "\x04",
344             "\xc2\x98",
345             "\xc2\x99",
346             "\xc2\x9a",
347             "\xc2\x9b",
348             "\x14",
349             "\x15",
350             "\xc2\x9e",
351             "\x1a",
352             "\x20",
353             "\xe3\x80\x82",
354             "\xe3\x80\x8c",
355             "\xe3\x80\x8d",
356             "\xe3\x80\x81",
357             "\xe3\x83\xbb",
358             "\xe3\x83\xb2",
359             "\xe3\x82\xa1",
360             "\xe3\x82\xa3",
361             "\xe3\x82\xa5",
362             "\xc2\xa3",
363             "\x2e",
364             "\x3c",
365             "\x28",
366             "\x2b",
367             "\x7c",
368             "\x26",
369             "\xe3\x82\xa7",
370             "\xe3\x82\xa9",
371             "\xe3\x83\xa3",
372             "\xe3\x83\xa5",
373             "\xe3\x83\xa7",
374             "\xe3\x83\x83",
375             "\xef\xbf\xbd",
376             "\xe3\x83\xbc",
377             "\xef\xbf\xbd",
378             "\x21",
379             "\xc2\xa5",
380             "\x2a",
381             "\x29",
382             "\x3b",
383             "\xc2\xac",
384             "\x2d",
385             "\x2f",
386             "\xef\xbf\xbd",
387             "\xef\xbf\xbd",
388             "\xef\xbf\xbd",
389             "\xef\xbf\xbd",
390             "\xef\xbf\xbd",
391             "\xef\xbf\xbd",
392             "\xef\xbf\xbd",
393             "\xef\xbf\xbd",
394             "\xc2\xa6",
395             "\x2c",
396             "\x25",
397             "\x5f",
398             "\x3e",
399             "\x3f",
400             "\xef\xbf\xbd",
401             "\xef\xbf\xbd",
402             "\xef\xbf\xbd",
403             "\xef\xbf\xbd",
404             "\xef\xbf\xbd",
405             "\xef\xbf\xbd",
406             "\xef\xbf\xbd",
407             "\xef\xbf\xbd",
408             "\xef\xbf\xbd",
409             "\x60",
410             "\x3a",
411             "\x23",
412             "\x40",
413             "\x27",
414             "\x3d",
415             "\x22",
416             "\xef\xbf\xbd",
417             "\xe3\x82\xa2",
418             "\xe3\x82\xa4",
419             "\xe3\x82\xa6",
420             "\xe3\x82\xa8",
421             "\xe3\x82\xaa",
422             "\xe3\x82\xab",
423             "\xe3\x82\xad",
424             "\xe3\x82\xaf",
425             "\xe3\x82\xb1",
426             "\xe3\x82\xb3",
427             "\xef\xbf\xbd",
428             "\xe3\x82\xb5",
429             "\xe3\x82\xb7",
430             "\xe3\x82\xb9",
431             "\xe3\x82\xbb",
432             "\xe3\x82\xbd",
433             "\xe3\x82\xbf",
434             "\xe3\x83\x81",
435             "\xe3\x83\x84",
436             "\xe3\x83\x86",
437             "\xe3\x83\x88",
438             "\xe3\x83\x8a",
439             "\xe3\x83\x8b",
440             "\xe3\x83\x8c",
441             "\xe3\x83\x8d",
442             "\xe3\x83\x8e",
443             "\xef\xbf\xbd",
444             "\xef\xbf\xbd",
445             "\xe3\x83\x8f",
446             "\xe3\x83\x92",
447             "\xe3\x83\x95",
448             "\xef\xbf\xbd",
449             "\xe2\x80\xbe",
450             "\xe3\x83\x98",
451             "\xe3\x83\x9b",
452             "\xe3\x83\x9e",
453             "\xe3\x83\x9f",
454             "\xe3\x83\xa0",
455             "\xe3\x83\xa1",
456             "\xe3\x83\xa2",
457             "\xe3\x83\xa4",
458             "\xe3\x83\xa6",
459             "\xef\xbf\xbd",
460             "\xe3\x83\xa8",
461             "\xe3\x83\xa9",
462             "\xe3\x83\xaa",
463             "\xe3\x83\xab",
464             "\xef\xbf\xbd",
465             "\xef\xbf\xbd",
466             "\xef\xbf\xbd",
467             "\xef\xbf\xbd",
468             "\xef\xbf\xbd",
469             "\xef\xbf\xbd",
470             "\xef\xbf\xbd",
471             "\xef\xbf\xbd",
472             "\xef\xbf\xbd",
473             "\xef\xbf\xbd",
474             "\xe3\x83\xac",
475             "\xe3\x83\xad",
476             "\xe3\x83\xaf",
477             "\xe3\x83\xb3",
478             "\xe3\x82\x9b",
479             "\xe3\x82\x9c",
480             "\xef\xbf\xbd",
481             "\x41",
482             "\x42",
483             "\x43",
484             "\x44",
485             "\x45",
486             "\x46",
487             "\x47",
488             "\x48",
489             "\x49",
490             "\xef\xbf\xbd",
491             "\xef\xbf\xbd",
492             "\xef\xbf\xbd",
493             "\xef\xbf\xbd",
494             "\xef\xbf\xbd",
495             "\xef\xbf\xbd",
496             "\xef\xbf\xbd",
497             "\x4a",
498             "\x4b",
499             "\x4c",
500             "\x4d",
501             "\x4e",
502             "\x4f",
503             "\x50",
504             "\x51",
505             "\x52",
506             "\xef\xbf\xbd",
507             "\xef\xbf\xbd",
508             "\xef\xbf\xbd",
509             "\xef\xbf\xbd",
510             "\xef\xbf\xbd",
511             "\xef\xbf\xbd",
512             "\x24",
513             "\xef\xbf\xbd",
514             "\x53",
515             "\x54",
516             "\x55",
517             "\x56",
518             "\x57",
519             "\x58",
520             "\x59",
521             "\x5a",
522             "\xef\xbf\xbd",
523             "\xef\xbf\xbd",
524             "\xef\xbf\xbd",
525             "\xef\xbf\xbd",
526             "\xef\xbf\xbd",
527             "\xef\xbf\xbd",
528             "\x30",
529             "\x31",
530             "\x32",
531             "\x33",
532             "\x34",
533             "\x35",
534             "\x36",
535             "\x37",
536             "\x38",
537             "\x39",
538             "\xef\xbf\xbd",
539             "\xef\xbf\xbd",
540             "\xef\xbf\xbd",
541             "\xef\xbf\xbd",
542             "\xef\xbf\xbd",
543             "\xc2\x9f",
544             );
545              
546             my %from_ucs4 = (
547             0x00000000 => "\x00",
548             0x00000001 => "\x01",
549             0x00000002 => "\x02",
550             0x00000003 => "\x03",
551             0x00000004 => "\x37",
552             0x00000005 => "\x2d",
553             0x00000006 => "\x2e",
554             0x00000007 => "\x2f",
555             0x00000008 => "\x16",
556             0x00000009 => "\x05",
557             0x0000000a => "\x25",
558             0x0000000b => "\x0b",
559             0x0000000c => "\x0c",
560             0x0000000d => "\x0d",
561             0x0000000e => "\x0e",
562             0x0000000f => "\x0f",
563             0x00000010 => "\x10",
564             0x00000011 => "\x11",
565             0x00000012 => "\x12",
566             0x00000013 => "\x13",
567             0x00000014 => "\x3c",
568             0x00000015 => "\x3d",
569             0x00000016 => "\x32",
570             0x00000017 => "\x26",
571             0x00000018 => "\x18",
572             0x00000019 => "\x19",
573             0x0000001a => "\x3f",
574             0x0000001b => "\x27",
575             0x0000001c => "\x1c",
576             0x0000001d => "\x1d",
577             0x0000001e => "\x1e",
578             0x0000001f => "\x1f",
579             0x00000020 => "\x40",
580             0x00000021 => "\x5a",
581             0x00000022 => "\x7f",
582             0x00000023 => "\x7b",
583             0x00000024 => "\xe0",
584             0x00000025 => "\x6c",
585             0x00000026 => "\x50",
586             0x00000027 => "\x7d",
587             0x00000028 => "\x4d",
588             0x00000029 => "\x5d",
589             0x0000002a => "\x5c",
590             0x0000002b => "\x4e",
591             0x0000002c => "\x6b",
592             0x0000002d => "\x60",
593             0x0000002e => "\x4b",
594             0x0000002f => "\x61",
595             0x00000030 => "\xf0",
596             0x00000031 => "\xf1",
597             0x00000032 => "\xf2",
598             0x00000033 => "\xf3",
599             0x00000034 => "\xf4",
600             0x00000035 => "\xf5",
601             0x00000036 => "\xf6",
602             0x00000037 => "\xf7",
603             0x00000038 => "\xf8",
604             0x00000039 => "\xf9",
605             0x0000003a => "\x7a",
606             0x0000003b => "\x5e",
607             0x0000003c => "\x4c",
608             0x0000003d => "\x7e",
609             0x0000003e => "\x6e",
610             0x0000003f => "\x6f",
611             0x00000040 => "\x7c",
612             0x00000041 => "\xc1",
613             0x00000042 => "\xc2",
614             0x00000043 => "\xc3",
615             0x00000044 => "\xc4",
616             0x00000045 => "\xc5",
617             0x00000046 => "\xc6",
618             0x00000047 => "\xc7",
619             0x00000048 => "\xc8",
620             0x00000049 => "\xc9",
621             0x0000004a => "\xd1",
622             0x0000004b => "\xd2",
623             0x0000004c => "\xd3",
624             0x0000004d => "\xd4",
625             0x0000004e => "\xd5",
626             0x0000004f => "\xd6",
627             0x00000050 => "\xd7",
628             0x00000051 => "\xd8",
629             0x00000052 => "\xd9",
630             0x00000053 => "\xe2",
631             0x00000054 => "\xe3",
632             0x00000055 => "\xe4",
633             0x00000056 => "\xe5",
634             0x00000057 => "\xe6",
635             0x00000058 => "\xe7",
636             0x00000059 => "\xe8",
637             0x0000005a => "\xe9",
638             0x0000005f => "\x6d",
639             0x00000060 => "\x79",
640             0x0000007c => "\x4f",
641             0x0000007f => "\x07",
642             0x00000080 => "\x20",
643             0x00000081 => "\x21",
644             0x00000082 => "\x22",
645             0x00000083 => "\x23",
646             0x00000084 => "\x24",
647             0x00000085 => "\x15",
648             0x00000086 => "\x06",
649             0x00000087 => "\x17",
650             0x00000088 => "\x28",
651             0x00000089 => "\x29",
652             0x0000008a => "\x2a",
653             0x0000008b => "\x2b",
654             0x0000008c => "\x2c",
655             0x0000008d => "\x09",
656             0x0000008e => "\x0a",
657             0x0000008f => "\x1b",
658             0x00000090 => "\x30",
659             0x00000091 => "\x31",
660             0x00000092 => "\x1a",
661             0x00000093 => "\x33",
662             0x00000094 => "\x34",
663             0x00000095 => "\x35",
664             0x00000096 => "\x36",
665             0x00000097 => "\x08",
666             0x00000098 => "\x38",
667             0x00000099 => "\x39",
668             0x0000009a => "\x3a",
669             0x0000009b => "\x3b",
670             0x0000009c => "\x04",
671             0x0000009d => "\x14",
672             0x0000009e => "\x3e",
673             0x0000009f => "\xff",
674             0x000000a3 => "\x4a",
675             0x000000a5 => "\x5b",
676             0x000000a6 => "\x6a",
677             0x000000ac => "\x5f",
678             0x0000203e => "\xa1",
679             0x00003001 => "\x44",
680             0x00003002 => "\x41",
681             0x0000300c => "\x42",
682             0x0000300d => "\x43",
683             0x0000309b => "\xbe",
684             0x0000309c => "\xbf",
685             0x000030a1 => "\x47",
686             0x000030a2 => "\x81",
687             0x000030a3 => "\x48",
688             0x000030a4 => "\x82",
689             0x000030a5 => "\x49",
690             0x000030a6 => "\x83",
691             0x000030a7 => "\x51",
692             0x000030a8 => "\x84",
693             0x000030a9 => "\x52",
694             0x000030aa => "\x85",
695             0x000030ab => "\x86",
696             0x000030ad => "\x87",
697             0x000030af => "\x88",
698             0x000030b1 => "\x89",
699             0x000030b3 => "\x8a",
700             0x000030b5 => "\x8c",
701             0x000030b7 => "\x8d",
702             0x000030b9 => "\x8e",
703             0x000030bb => "\x8f",
704             0x000030bd => "\x90",
705             0x000030bf => "\x91",
706             0x000030c1 => "\x92",
707             0x000030c3 => "\x56",
708             0x000030c4 => "\x93",
709             0x000030c6 => "\x94",
710             0x000030c8 => "\x95",
711             0x000030ca => "\x96",
712             0x000030cb => "\x97",
713             0x000030cc => "\x98",
714             0x000030cd => "\x99",
715             0x000030ce => "\x9a",
716             0x000030cf => "\x9d",
717             0x000030d2 => "\x9e",
718             0x000030d5 => "\x9f",
719             0x000030d8 => "\xa2",
720             0x000030db => "\xa3",
721             0x000030de => "\xa4",
722             0x000030df => "\xa5",
723             0x000030e0 => "\xa6",
724             0x000030e1 => "\xa7",
725             0x000030e2 => "\xa8",
726             0x000030e3 => "\x53",
727             0x000030e4 => "\xa9",
728             0x000030e5 => "\x54",
729             0x000030e6 => "\xaa",
730             0x000030e7 => "\x55",
731             0x000030e8 => "\xac",
732             0x000030e9 => "\xad",
733             0x000030ea => "\xae",
734             0x000030eb => "\xaf",
735             0x000030ec => "\xba",
736             0x000030ed => "\xbb",
737             0x000030ef => "\xbc",
738             0x000030f2 => "\x46",
739             0x000030f3 => "\xbd",
740             0x000030fb => "\x45",
741             0x000030fc => "\x58",
742             );
743              
744             sub _recode
745             {
746 587 100   587   1471 if ($_[0]->{_from} eq 'INTERNAL') {
    100          
747             $_[1] = join '',
748             map $from_ucs4{$_}
749             || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x6f"),
750 197   100     403 @{$_[1]};
  197         978  
751             } elsif ($_[0]->{_to} eq 'UTF-8',) {
752 195         669 $_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
753             } else {
754 195         619 $_[1] = [ map
755             $to_ucs4[$_],
756             unpack 'C*', $_[1]
757             ];
758             }
759              
760 587         1367 return 1;
761             }
762              
763             1;
764              
765             __END__
766              
767             =head1 NAME
768              
769             Locale::RecodeData::IBM290 - Conversion routines for IBM290
770              
771             =head1 SYNOPSIS
772              
773             This module is internal to libintl. Do not use directly!
774              
775             =head1 DESCRIPTION
776              
777             This module is generated and contains the conversion tables and
778             routines for IBM290.
779              
780             =head1 COMMENTS
781              
782             The following comments have been extracted from the original charmap:
783              
784             version: 1.0
785             source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990
786             alias CP290
787             alias EBCDIC-JP-KANA
788              
789             Please note that aliases listed above are not necessarily valid!
790              
791             =head1 CHARACTER TABLE
792              
793             The following table is sorted in the same order as the original charmap.
794             All character codes are in hexadecimal. Please read 'ISO-10646' as
795             'ISO-10646-UCS4'.
796              
797             Local | ISO-10646 | Description
798             -------+-----------+-------------------------------------------------
799             00 | 00000000 | NULL (NUL)
800             01 | 00000001 | START OF HEADING (SOH)
801             02 | 00000002 | START OF TEXT (STX)
802             03 | 00000003 | END OF TEXT (ETX)
803             04 | 0000009C | STRING TERMINATOR (ST)
804             05 | 00000009 | CHARACTER TABULATION (HT)
805             06 | 00000086 | START OF SELECTED AREA (SSA)
806             07 | 0000007F | DELETE (DEL)
807             08 | 00000097 | END OF GUARDED AREA (EPA)
808             09 | 0000008D | REVERSE LINE FEED (RI)
809             0A | 0000008E | SINGLE-SHIFT TWO (SS2)
810             0B | 0000000B | LINE TABULATION (VT)
811             0C | 0000000C | FORM FEED (FF)
812             0D | 0000000D | CARRIAGE RETURN (CR)
813             0E | 0000000E | SHIFT OUT (SO)
814             0F | 0000000F | SHIFT IN (SI)
815             10 | 00000010 | DATALINK ESCAPE (DLE)
816             11 | 00000011 | DEVICE CONTROL ONE (DC1)
817             12 | 00000012 | DEVICE CONTROL TWO (DC2)
818             13 | 00000013 | DEVICE CONTROL THREE (DC3)
819             14 | 0000009D | OPERATING SYSTEM COMMAND (OSC)
820             15 | 00000085 | NEXT LINE (NEL)
821             16 | 00000008 | BACKSPACE (BS)
822             17 | 00000087 | END OF SELECTED AREA (ESA)
823             18 | 00000018 | CANCEL (CAN)
824             19 | 00000019 | END OF MEDIUM (EM)
825             1A | 00000092 | PRIVATE USE TWO (PU2)
826             1B | 0000008F | SINGLE-SHIFT THREE (SS3)
827             1C | 0000001C | FILE SEPARATOR (IS4)
828             1D | 0000001D | GROUP SEPARATOR (IS3)
829             1E | 0000001E | RECORD SEPARATOR (IS2)
830             1F | 0000001F | UNIT SEPARATOR (IS1)
831             20 | 00000080 | PADDING CHARACTER (PAD)
832             21 | 00000081 | HIGH OCTET PRESET (HOP)
833             22 | 00000082 | BREAK PERMITTED HERE (BPH)
834             23 | 00000083 | NO BREAK HERE (NBH)
835             24 | 00000084 | INDEX (IND)
836             25 | 0000000A | LINE FEED (LF)
837             26 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
838             27 | 0000001B | ESCAPE (ESC)
839             28 | 00000088 | CHARACTER TABULATION SET (HTS)
840             29 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
841             2A | 0000008A | LINE TABULATION SET (VTS)
842             2B | 0000008B | PARTIAL LINE FORWARD (PLD)
843             2C | 0000008C | PARTIAL LINE BACKWARD (PLU)
844             2D | 00000005 | ENQUIRY (ENQ)
845             2E | 00000006 | ACKNOWLEDGE (ACK)
846             2F | 00000007 | BELL (BEL)
847             30 | 00000090 | DEVICE CONTROL STRING (DCS)
848             31 | 00000091 | PRIVATE USE ONE (PU1)
849             32 | 00000016 | SYNCHRONOUS IDLE (SYN)
850             33 | 00000093 | SET TRANSMIT STATE (STS)
851             34 | 00000094 | CANCEL CHARACTER (CCH)
852             35 | 00000095 | MESSAGE WAITING (MW)
853             36 | 00000096 | START OF GUARDED AREA (SPA)
854             37 | 00000004 | END OF TRANSMISSION (EOT)
855             38 | 00000098 | START OF STRING (SOS)
856             39 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
857             3A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
858             3B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
859             3C | 00000014 | DEVICE CONTROL FOUR (DC4)
860             3D | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
861             3E | 0000009E | PRIVACY MESSAGE (PM)
862             3F | 0000001A | SUBSTITUTE (SUB)
863             40 | 00000020 | SPACE
864             41 | 00003002 | IDEOGRAPHIC FULL STOP
865             42 | 0000300C | LEFT CORNER BRACKET
866             43 | 0000300D | RIGHT CORNER BRACKET
867             44 | 00003001 | IDEOGRAPHIC COMMA
868             45 | 000030FB | KATAKANA MIDDLE DOT
869             46 | 000030F2 | KATAKANA LETTER WO
870             47 | 000030A1 | KATAKANA LETTER SMALL A
871             48 | 000030A3 | KATAKANA LETTER SMALL I
872             49 | 000030A5 | KATAKANA LETTER SMALL U
873             4A | 000000A3 | POUND SIGN
874             4B | 0000002E | FULL STOP
875             4C | 0000003C | LESS-THAN SIGN
876             4D | 00000028 | LEFT PARENTHESIS
877             4E | 0000002B | PLUS SIGN
878             4F | 0000007C | VERTICAL LINE
879             50 | 00000026 | AMPERSAND
880             51 | 000030A7 | KATAKANA LETTER SMALL E
881             52 | 000030A9 | KATAKANA LETTER SMALL O
882             53 | 000030E3 | KATAKANA LETTER SMALL YA
883             54 | 000030E5 | KATAKANA LETTER SMALL YU
884             55 | 000030E7 | KATAKANA LETTER SMALL YO
885             56 | 000030C3 | KATAKANA LETTER SMALL TU
886             58 | 000030FC | KATAKANA-HIRAGANA PROLONGED SOUND MARK
887             5A | 00000021 | EXCLAMATION MARK
888             5B | 000000A5 | YEN SIGN
889             5C | 0000002A | ASTERISK
890             5D | 00000029 | RIGHT PARENTHESIS
891             5E | 0000003B | SEMICOLON
892             5F | 000000AC | NOT SIGN
893             60 | 0000002D | HYPHEN-MINUS
894             61 | 0000002F | SOLIDUS
895             6A | 000000A6 | BROKEN BAR
896             6B | 0000002C | COMMA
897             6C | 00000025 | PERCENT SIGN
898             6D | 0000005F | LOW LINE
899             6E | 0000003E | GREATER-THAN SIGN
900             6F | 0000003F | QUESTION MARK
901             79 | 00000060 | GRAVE ACCENT
902             7A | 0000003A | COLON
903             7B | 00000023 | NUMBER SIGN
904             7C | 00000040 | COMMERCIAL AT
905             7D | 00000027 | APOSTROPHE
906             7E | 0000003D | EQUALS SIGN
907             7F | 00000022 | QUOTATION MARK
908             81 | 000030A2 | KATAKANA LETTER A
909             82 | 000030A4 | KATAKANA LETTER I
910             83 | 000030A6 | KATAKANA LETTER U
911             84 | 000030A8 | KATAKANA LETTER E
912             85 | 000030AA | KATAKANA LETTER O
913             86 | 000030AB | KATAKANA LETTER KA
914             87 | 000030AD | KATAKANA LETTER KI
915             88 | 000030AF | KATAKANA LETTER KU
916             89 | 000030B1 | KATAKANA LETTER KE
917             8A | 000030B3 | KATAKANA LETTER KO
918             8C | 000030B5 | KATAKANA LETTER SA
919             8D | 000030B7 | KATAKANA LETTER SI
920             8E | 000030B9 | KATAKANA LETTER SU
921             8F | 000030BB | KATAKANA LETTER SE
922             90 | 000030BD | KATAKANA LETTER SO
923             91 | 000030BF | KATAKANA LETTER TA
924             92 | 000030C1 | KATAKANA LETTER TI
925             93 | 000030C4 | KATAKANA LETTER TU
926             94 | 000030C6 | KATAKANA LETTER TE
927             95 | 000030C8 | KATAKANA LETTER TO
928             96 | 000030CA | KATAKANA LETTER NA
929             97 | 000030CB | KATAKANA LETTER NI
930             98 | 000030CC | KATAKANA LETTER NU
931             99 | 000030CD | KATAKANA LETTER NE
932             9A | 000030CE | KATAKANA LETTER NO
933             9D | 000030CF | KATAKANA LETTER HA
934             9E | 000030D2 | KATAKANA LETTER HI
935             9F | 000030D5 | KATAKANA LETTER HU
936             A1 | 0000203E | OVERLINE
937             A2 | 000030D8 | KATAKANA LETTER HE
938             A3 | 000030DB | KATAKANA LETTER HO
939             A4 | 000030DE | KATAKANA LETTER MA
940             A5 | 000030DF | KATAKANA LETTER MI
941             A6 | 000030E0 | KATAKANA LETTER MU
942             A7 | 000030E1 | KATAKANA LETTER ME
943             A8 | 000030E2 | KATAKANA LETTER MO
944             A9 | 000030E4 | KATAKANA LETTER YA
945             AA | 000030E6 | KATAKANA LETTER YU
946             AC | 000030E8 | KATAKANA LETTER YO
947             AD | 000030E9 | KATAKANA LETTER RA
948             AE | 000030EA | KATAKANA LETTER RI
949             AF | 000030EB | KATAKANA LETTER RU
950             BA | 000030EC | KATAKANA LETTER RE
951             BB | 000030ED | KATAKANA LETTER RO
952             BC | 000030EF | KATAKANA LETTER WA
953             BD | 000030F3 | KATAKANA LETTER N
954             BE | 0000309B | KATAKANA-HIRAGANA VOICED SOUND MARK
955             BF | 0000309C | KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
956             C1 | 00000041 | LATIN CAPITAL LETTER A
957             C2 | 00000042 | LATIN CAPITAL LETTER B
958             C3 | 00000043 | LATIN CAPITAL LETTER C
959             C4 | 00000044 | LATIN CAPITAL LETTER D
960             C5 | 00000045 | LATIN CAPITAL LETTER E
961             C6 | 00000046 | LATIN CAPITAL LETTER F
962             C7 | 00000047 | LATIN CAPITAL LETTER G
963             C8 | 00000048 | LATIN CAPITAL LETTER H
964             C9 | 00000049 | LATIN CAPITAL LETTER I
965             D1 | 0000004A | LATIN CAPITAL LETTER J
966             D2 | 0000004B | LATIN CAPITAL LETTER K
967             D3 | 0000004C | LATIN CAPITAL LETTER L
968             D4 | 0000004D | LATIN CAPITAL LETTER M
969             D5 | 0000004E | LATIN CAPITAL LETTER N
970             D6 | 0000004F | LATIN CAPITAL LETTER O
971             D7 | 00000050 | LATIN CAPITAL LETTER P
972             D8 | 00000051 | LATIN CAPITAL LETTER Q
973             D9 | 00000052 | LATIN CAPITAL LETTER R
974             E0 | 00000024 | DOLLAR SIGN
975             E2 | 00000053 | LATIN CAPITAL LETTER S
976             E3 | 00000054 | LATIN CAPITAL LETTER T
977             E4 | 00000055 | LATIN CAPITAL LETTER U
978             E5 | 00000056 | LATIN CAPITAL LETTER V
979             E6 | 00000057 | LATIN CAPITAL LETTER W
980             E7 | 00000058 | LATIN CAPITAL LETTER X
981             E8 | 00000059 | LATIN CAPITAL LETTER Y
982             E9 | 0000005A | LATIN CAPITAL LETTER Z
983             F0 | 00000030 | DIGIT ZERO
984             F1 | 00000031 | DIGIT ONE
985             F2 | 00000032 | DIGIT TWO
986             F3 | 00000033 | DIGIT THREE
987             F4 | 00000034 | DIGIT FOUR
988             F5 | 00000035 | DIGIT FIVE
989             F6 | 00000036 | DIGIT SIX
990             F7 | 00000037 | DIGIT SEVEN
991             F8 | 00000038 | DIGIT EIGHT
992             F9 | 00000039 | DIGIT NINE
993             FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
994              
995              
996             =head1 AUTHOR
997              
998             Copyright (C) 2002-2026 L<Guido Flohr|http://www.guido-flohr.net/>
999             (L<mailto:guido.flohr@cantanea.com>), all rights reserved. See the source
1000             code for details!code for details!
1001              
1002             =head1 SEE ALSO
1003              
1004             Locale::RecodeData(3), Locale::Recode(3), perl(1)
1005              
1006             =cut
1007             Local Variables:
1008             mode: perl
1009             perl-indent-level: 4
1010             perl-continued-statement-offset: 4
1011             perl-continued-brace-offset: 0
1012             perl-brace-offset: -4
1013             perl-brace-imaginary-offset: 0
1014             perl-label-offset: -4
1015             cperl-indent-level: 4
1016             cperl-continued-statement-offset: 2
1017             tab-width: 4
1018             End: