Locale:...:IBM863(3)
π Locale::RecodeData::IBM863(3) π
okay bestie, so this is one of those pages straight out of the User Contributed Perl Documentation pile, and it's giving very specific. it's Locale::RecodeData::IBM863, it lives in section 3 of the manual, and it's literally just here to tell you about the IBM863 conversion vibes. let's get into it π
β¨ NAME β¨
Locale::RecodeData::IBM863 β the conversion routines for IBM863. that's it, that's the whole name. no cap. π¦
πΈ SYNOPSIS πΈ
This module is internal to libintl. Do not use directly!
yeah so do not use directly β the module is telling on itself. it's internal to libintl, so hands off, bestie π
π§ DESCRIPTION π§
this module is generated (not hand-written, she's a build artifact queen π) and it's the one holding all the conversion tables and routines for IBM863. so like, the actual machinery lives in here β you just don't touch it yourself. π
π COMMENTS π
the following comments were extracted from the original charmap, and they're honestly iconic in a spreadsheet way:
version: 1.0
source: IBM Keyboard layouts and code pages, PN 07G4586 June 1991
alias CP863
alias 863
β οΈ real talk β please note that aliases listed above are not necessarily valid! so like,CP863and863are listed as aliases but don't come at this page expecting a guarantee, yk? π
β CHARACTER TABLE β
so this section is the setup for the big table that's about to arrive, and there are three things you need to know before it drops:
- the following table is sorted in the same order as the original charmap β not alphabetical, not by vibes, by charmap order. respect the source π
- all character codes are in hexadecimal. hex girlies rise π₯
- and please, pretty please, read
'ISO-10646'as'ISO-10646-UCS4'β same thing, longer name, main character energy β¨
the table itself is next, and it's a whole moment. stay tuned bestie π«Ά
okay so before we dive in, a lil orientation bc the table is long and we're picking up mid-vibe πΈ β every row here has three columns: the local byte (that's the IBM863 one, the whole reason we're here π ), the matching ISO-10646 codepoint (the grown-up universal one), and the Description so you actually know what you're looking at. Don't ask me to memorise this, ask the table. The table ate. π
First up, the control crew β the invisible girlies, 00 through 1F. You literally cannot see them, they run things. Main character energy, zero screen time. π
00 | 00000000 | NULL (NUL)
01 | 00000001 | START OF HEADING (SOH)
02 | 00000002 | START OF TEXT (STX)
03 | 00000003 | END OF TEXT (ETX)
04 | 00000004 | END OF TRANSMISSION (EOT)
05 | 00000005 | ENQUIRY (ENQ)
06 | 00000006 | ACKNOWLEDGE (ACK)
07 | 00000007 | BELL (BEL)
08 | 00000008 | BACKSPACE (BS)
09 | 00000009 | CHARACTER TABULATION (HT)
0A | 0000000A | LINE FEED (LF)
0B | 0000000B | LINE TABULATION (VT)
0C | 0000000C | FORM FEED (FF)
0D | 0000000D | CARRIAGE RETURN (CR)
0E | 0000000E | SHIFT OUT (SO)
0F | 0000000F | SHIFT IN (SI)
10 | 00000010 | DATALINK ESCAPE (DLE)
11 | 00000011 | DEVICE CONTROL ONE (DC1)
12 | 00000012 | DEVICE CONTROL TWO (DC2)
13 | 00000013 | DEVICE CONTROL THREE (DC3)
14 | 00000014 | DEVICE CONTROL FOUR (DC4)
15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK)
16 | 00000016 | SYNCHRONOUS IDLE (SYN)
17 | 00000017 | END OF TRANSMISSION BLOCK (ETB)
18 | 00000018 | CANCEL (CAN)
19 | 00000019 | END OF MEDIUM (EM)
1A | 0000001A | SUBSTITUTE (SUB)
1B | 0000001B | ESCAPE (ESC)
1C | 0000001C | FILE SEPARATOR (IS4)
1D | 0000001D | GROUP SEPARATOR (IS3)
1E | 0000001E | RECORD SEPARATOR (IS2)
1F | 0000001F | UNIT SEPARATOR (IS1)
See how 00β1F line up perfectly with ISO-10646? Same numbers, no drama, no plot twist. It's giving "we agreed on this part" π€. BEL at 07 still gets to be loud, BS at 08 still gets to undo your mistakes, and ESC at 1B remains an icon. periodt.
Next block, 20β3F: the punctuation era. Space shows up first like the queen she is π, then it's all the symbols you type without thinking about.
20 | 00000020 | SPACE
21 | 00000021 | EXCLAMATION MARK
22 | 00000022 | QUOTATION MARK
23 | 00000023 | NUMBER SIGN
24 | 00000024 | DOLLAR SIGN
25 | 00000025 | PERCENT SIGN
26 | 00000026 | AMPERSAND
27 | 00000027 | APOSTROPHE
28 | 00000028 | LEFT PARENTHESIS
29 | 00000029 | RIGHT PARENTHESIS
2A | 0000002A | ASTERISK
2B | 0000002B | PLUS SIGN
2C | 0000002C | COMMA
2D | 0000002D | HYPHEN-MINUS
2E | 0000002E | FULL STOP
2F | 0000002F | SOLIDUS
30 | 00000030 | DIGIT ZERO
31 | 00000031 | DIGIT ONE
32 | 00000032 | DIGIT TWO
33 | 00000033 | DIGIT THREE
34 | 00000034 | DIGIT FOUR
35 | 00000035 | DIGIT FIVE
36 | 00000036 | DIGIT SIX
37 | 00000037 | DIGIT SEVEN
38 | 00000038 | DIGIT EIGHT
39 | 00000039 | DIGIT NINE
3A | 0000003A | COLON
3B | 0000003B | SEMICOLON
3C | 0000003C | LESS-THAN SIGN
3D | 0000003D | EQUALS SIGN
3E | 0000003E | GREATER-THAN SIGN
3F | 0000003F | QUESTION MARK
2D is HYPHEN-MINUS btw β yes, one character, two jobs, she's versatile π
. And 3F QUESTION MARK closing out the block is so on brand, she's literally the "wait what" of the alphabet. π
40β5F = the uppercase era. 40 is COMMERCIAL AT sneaking in before the letters like a plus-one π«Ά, then it's straight A-to-Z, then the bracket squad.
40 | 00000040 | COMMERCIAL AT
41 | 00000041 | LATIN CAPITAL LETTER A
42 | 00000042 | LATIN CAPITAL LETTER B
43 | 00000043 | LATIN CAPITAL LETTER C
44 | 00000044 | LATIN CAPITAL LETTER D
45 | 00000045 | LATIN CAPITAL LETTER E
46 | 00000046 | LATIN CAPITAL LETTER F
47 | 00000047 | LATIN CAPITAL LETTER G
48 | 00000048 | LATIN CAPITAL LETTER H
49 | 00000049 | LATIN CAPITAL LETTER I
4A | 0000004A | LATIN CAPITAL LETTER J
4B | 0000004B | LATIN CAPITAL LETTER K
4C | 0000004C | LATIN CAPITAL LETTER L
4D | 0000004D | LATIN CAPITAL LETTER M
4E | 0000004E | LATIN CAPITAL LETTER N
4F | 0000004F | LATIN CAPITAL LETTER O
50 | 00000050 | LATIN CAPITAL LETTER P
51 | 00000051 | LATIN CAPITAL LETTER Q
52 | 00000052 | LATIN CAPITAL LETTER R
53 | 00000053 | LATIN CAPITAL LETTER S
54 | 00000054 | LATIN CAPITAL LETTER T
55 | 00000055 | LATIN CAPITAL LETTER U
56 | 00000056 | LATIN CAPITAL LETTER V
57 | 00000057 | LATIN CAPITAL LETTER W
58 | 00000058 | LATIN CAPITAL LETTER X
59 | 00000059 | LATIN CAPITAL LETTER Y
5A | 0000005A | LATIN CAPITAL LETTER Z
5B | 0000005B | LEFT SQUARE BRACKET
5C | 0000005C | REVERSE SOLIDUS
5D | 0000005D | RIGHT SQUARE BRACKET
5E | 0000005E | CIRCUMFLEX ACCENT
5F | 0000005F | LOW LINE
5C REVERSE SOLIDUS β that's the backslash bestie, she's just got a formal name for formal occasions β¨. And 5F LOW LINE is underscore living her lowercase life, we respect her. no cap.
60β7F: lowercase era plus the weird little end-of-block section. 7F DELETE (DEL) is the final boss of this chunk and she is not here to make friends π.
60 | 00000060 | GRAVE ACCENT
61 | 00000061 | LATIN SMALL LETTER A
62 | 00000062 | LATIN SMALL LETTER B
63 | 00000063 | LATIN SMALL LETTER C
64 | 00000064 | LATIN SMALL LETTER D
65 | 00000065 | LATIN SMALL LETTER E
66 | 00000066 | LATIN SMALL LETTER F
67 | 00000067 | LATIN SMALL LETTER G
68 | 00000068 | LATIN SMALL LETTER H
69 | 00000069 | LATIN SMALL LETTER I
6A | 0000006A | LATIN SMALL LETTER J
6B | 0000006B | LATIN SMALL LETTER K
6C | 0000006C | LATIN SMALL LETTER L
6D | 0000006D | LATIN SMALL LETTER M
6E | 0000006E | LATIN SMALL LETTER N
6F | 0000006F | LATIN SMALL LETTER O
70 | 00000070 | LATIN SMALL LETTER P
71 | 00000071 | LATIN SMALL LETTER Q
72 | 00000072 | LATIN SMALL LETTER R
73 | 00000073 | LATIN SMALL LETTER S
74 | 00000074 | LATIN SMALL LETTER T
75 | 00000075 | LATIN SMALL LETTER U
76 | 00000076 | LATIN SMALL LETTER V
77 | 00000077 | LATIN SMALL LETTER W
78 | 00000078 | LATIN SMALL LETTER X
79 | 00000079 | LATIN SMALL LETTER Y
7A | 0000007A | LATIN SMALL LETTER Z
7B | 0000007B | LEFT CURLY BRACKET
7C | 0000007C | VERTICAL LINE
7D | 0000007D | RIGHT CURLY BRACKET
7E | 0000007E | TILDE
7F | 0000007F | DELETE (DEL)
Okay so everything up to here is literally just the standard set β nothing spooky yet. The IBM863 spice starts now. buckle up. π
80β9F!!! This is where she stops being like every other code page and starts having β¨personalityβ¨. Accents, currency, and β not me noticing β 8D is <yellow>00002017</yellow> and 9F is <yellow>00000192</yellow> while all her neighbours are out here with lil 000000xx numbers. she's different. she's special. we stan a nonconformist. ππ
80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
84 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
86 | 000000B6 | PILCROW SIGN
87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
8D | 00002017 | DOUBLE LOW LINE
8E | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
8F | 000000A7 | SECTION SIGN
90 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
91 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
92 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
94 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
95 | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
98 | 000000A4 | CURRENCY SIGN
99 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
9B | 000000A2 | CENT SIGN
9C | 000000A3 | POUND SIGN
9D | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
9E | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
9F | 00000192 | LATIN SMALL LETTER F WITH HOOK
9B CENT SIGN and 9C POUND SIGN side by side? and 98 CURRENCY SIGN right above them?? it's giving international banking πΈβ¨. also 86 PILCROW SIGN just vibing in the middle of all these accented letters like "hiii I'm the paragraph one" π.
A0βBF: symbols era, and then β plot twist β the box drawings arrive at B3 and never leave. π¦ This right here is why your old terminal art looked so good, bestie.
A0 | 000000A6 | BROKEN BAR
A1 | 000000B4 | ACUTE ACCENT
A2 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
A3 | 000000FA | LATIN SMALL LETTER U WITH ACUTE
A4 | 000000A8 | DIAERESIS
A5 | 000000B8 | CEDILLA
A6 | 000000B3 | SUPERSCRIPT THREE
A7 | 000000AF | MACRON
A8 | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
A9 | 00002310 | REVERSED NOT SIGN
AA | 000000AC | NOT SIGN
AB | 000000BD | VULGAR FRACTION ONE HALF
AC | 000000BC | VULGAR FRACTION ONE QUARTER
AD | 000000BE | VULGAR FRACTION THREE QUARTERS
AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
B0 | 00002591 | LIGHT SHADE
B1 | 00002592 | MEDIUM SHADE
B2 | 00002593 | DARK SHADE
B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
B5 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
B6 | 00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
B7 | 00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
B8 | 00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
BD | 0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
BE | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
quick faves check: AB, AC, AD = ONE HALF, ONE QUARTER, THREE QUARTERS β fractions before they were cool, honestly iconic π. A9 REVERSED NOT SIGN vs AA NOT SIGN is the pettiest one-character difference in the whole file and I'm obsessed. and B0/B1/B2 = LIGHT SHADE, MEDIUM SHADE, DARK SHADE, a whole gradient, a whole aesthetic π
.
C0βDF: the box-drawing golden age. every single line here is a corner, a cross, a tee, or a solid block. pure geometry. slay. β¨
C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
C6 | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
C7 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
CF | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
D0 | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
D1 | 00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
D2 | 00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
D3 | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
D4 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
D5 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
D6 | 00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
D7 | 0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
D8 | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
DB | 00002588 | FULL BLOCK
DC | 00002584 | LOWER HALF BLOCK
DD | 0000258C | LEFT HALF BLOCK
DE | 00002590 | RIGHT HALF BLOCK
DF | 00002580 | UPPER HALF BLOCK
DB FULL BLOCK is the moment. solid. unbothered. literally a full block, no notes. and then DCβDF are her half-block siblings: LOWER, LEFT, RIGHT, UPPER. cute lil quad, fr fr π«Ά. if you've ever drawn a progress bar in a terminal with any of these, you were serving C4/C5 realness and didn't even know it. π
and finally, this chunk: E0 onward, where the page suddenly gets MULTILINGUAL on us. Greek letters?? a German letter?? in my IBM863?? it's more likely than you think. π
E0 | 000003B1 | GREEK SMALL LETTER ALPHA
E1 | 000000DF | LATIN SMALL LETTER SHARP S (German)
E2 | 00000393 | GREEK CAPITAL LETTER GAMMA
okay so E0 GREEK SMALL LETTER ALPHA is chilling right next to E1 LATIN SMALL LETTER SHARP S (German) β bestie the range on this code page is wild, she contains multitudes π β and then E2 GREEK CAPITAL LETTER GAMMA</cend>... typing the caps version of a letter that showed up lowercase two rows ago. consistent? no. iconic? absolutely. π
heads up gorgeous: the ISO-10646 values in this half are not the tidy000000xxpattern anymore βE0is000003B1andE2is00000393β so if you're eyeballing this table for a conversion, read the middle column, don't assume it matches the local byte. π iykyk.
and the table keeps going from here β we've still got more rows to cover, so don't go anywhere. π¦
okay so the rest of the character table is literally right here, bestie β no cap, every last byte:
E3 | 000003C0 | GREEK SMALL LETTER PI
E4 | 000003A3 | GREEK CAPITAL LETTER SIGMA
E5 | 000003C3 | GREEK SMALL LETTER SIGMA
E6 | 000000B5 | MICRO SIGN
E7 | 000003C4 | GREEK SMALL LETTER TAU
E8 | 000003A6 | GREEK CAPITAL LETTER PHI
E9 | 00000398 | GREEK CAPITAL LETTER THETA
EA | 000003A9 | GREEK CAPITAL LETTER OMEGA
EB | 000003B4 | GREEK SMALL LETTER DELTA
EC | 0000221E | INFINITY
ED | 000003C6 | GREEK SMALL LETTER PHI
EE | 000003B5 | GREEK SMALL LETTER EPSILON
EF | 00002229 | INTERSECTION
F0 | 00002261 | IDENTICAL TO
F1 | 000000B1 | PLUS-MINUS SIGN
F2 | 00002265 | GREATER-THAN OR EQUAL TO
F3 | 00002264 | LESS-THAN OR EQUAL TO
F4 | 00002320 | TOP HALF INTEGRAL
F5 | 00002321 | BOTTOM HALF INTEGRAL
F6 | 000000F7 | DIVISION SIGN
F7 | 00002248 | ALMOST EQUAL TO
F8 | 000000B0 | DEGREE SIGN
F9 | 00002219 | BULLET OPERATOR
FA | 000000B7 | MIDDLE DOT
FB | 0000221A | SQUARE ROOT
FC | 0000207F | SUPERSCRIPT LATIN SMALL LETTER n
FD | 000000B2 | SUPERSCRIPT TWO
FE | 000025A0 | BLACK SQUARE
FF | 000000A0 | NO-BREAK SPACE
thatβs the whole table β she ate, no crumbs π β¨
π AUTHOR π
so the author bestie over here is Guido Flohr, and the page is literally copyrighted. the exact flex is:
Copyright (C) 2002-2017 Guido Flohr <http://www.guido-flohr.net/>
(<mailto:guido.flohr@cantanea.com>), all rights reserved. See the
source code for details!code for details!
yes bestie, that details!code for details! moment is in the original and we are keeping it fr fr β every detail stays π«Ά
π¦ SEE ALSO π¦
if youβre still hungry for lore, go peek at these icons too:
and thatβs the whole page, bestie π β source/version perl v5.42.0, dated 2025-01-22, and itβs Locale:...:IBM863(3). bye byeee π«Άβ¨
π¦ where this page comes from
- opensuse-leap 16.0: perl-libintl-perl 1.350.0-160000.2.2 Β· GPL-3.0-or-later
- opensuse-leap 16.0: perl-libintl-perl 1.350.0-160000.2.2 Β· GPL-3.0-or-later
- opensuse-leap 16.0: perl-libintl-perl 1.350.0-160000.2.2 Β· GPL-3.0-or-later
- opensuse-leap 16.0: perl-libintl-perl 1.350.0-160000.2.2 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms