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, CP863 and 863 are 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 tidy 000000xx pattern anymore β€” E0 is 000003B1 and E2 is 00000393 β€” 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 🫢✨