Locale:...:IBM869(3)

πŸ’… Locale::RecodeData::IBM869 β€” like, the whole manual bestie 🌸

okay so before we even start: this is the Locale:...:IBM869(3) page from the User Contributed Perl Documentation section, and yes the title got a little chopped in the header, that's just how it renders. The actual module name is Locale::RecodeData::IBM869 and it's giving deep internals, so buckle up πŸŽ€


✨ NAME ✨

Locale::RecodeData::IBM869 β€” conversion routines for IBM869. that's it, that's the whole name. short, sweet, iconic πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

no code example here, because there isn't one, and honestly? rude of you to expect one. the synopsis is literally just this warning, so read it carefully:

This module is internal to libintl. Do not use directly!

like, fr fr, do not touch. it's not for you, it's for libintl's eyes only πŸ™ˆ this is the backstage pass module, not the main character.


πŸ’– DESCRIPTION πŸ’–

so what is this thing? it's a generated module β€” nobody hand-wrote this, a script birthed it β€” and it contains the conversion tables and routines for IBM869. that's the whole job. tables + routines, IBM869 edition, no notes ✨


🫢 COMMENTS 🫢

these are the comments that got extracted from the original charmap, preserved exactly, so here's the receipts 🧾:

 version: 1.0
  source: IBM Keyboard layouts and code pages, PN 07G4586 June 1991
 alias CP869
 alias 869
 alias CP-GR

so we're on version 1.0, the source is IBM Keyboard layouts and code pages, PN 07G4586 June 1991 (very vintage, very retro, we love a 1991 moment πŸ’Ύ), and the aliases are CP869, 869, and CP-GR.

⚠️ important vibes check: please note that aliases listed above are not necessarily valid! like, don't just assume they all work, okay? read the fine print bestie 😭

🌈 CHARACTER TABLE 🌈

here's where it gets juicy. the following table is sorted in the same order as the original charmap β€” no reshuffling, no "improving" it, we respect the source's choices πŸ’…

and all character codes are in hexadecimal, so like 0x00-core, not decimal. don't come at me with base 10, that's not the vibe here πŸ”₯

also one tiny terminology note that matters: please read 'ISO-10646' as 'ISO-10646-UCS4'. same thing, longer name, more letters, more drama ⭐

(and yes, the actual table itself is coming in the next part β€” this page is long, we're pacing ourselves 🧚)

okay so bestie, this right here is the moment the whole page was building to β€” the actual map of every byte πŸ’– it's literally the whole alphabet plus a Greek situation plus an entire box-drawing art kit. no skipping, no "you get the idea" β€” we go byte by byte, and honestly? iconic of her.

first up, the classic section, 00 through 7F. this is the part every terminal on earth agrees on, the "hello world" of byte maps, the vanilla of it all. and yes the escapes and control codes are in here too β€” they don't look like much on screen but they run the whole show, periodt.

        Local | ISO-10646 | Description
       -------+-----------+-------------------------------------------------
           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)
           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
           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
           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 and now πŸ₯ the part you actually came for β€” the high half. notice how the local column hops straight from 7F to 86? that's just what the table says, bestie, we don't editorialize, we report πŸ’…

and honestly this section is so much. you got your accented Greek capitals up top, your curly lil quotation marks, the copyright sign because sure, then it fully pivots into an entire box-drawing construction kit (light and double, we're spoiled), some shade blocks for that gradient aesthetic, and then a full lowercase Greek run at the end. it's giving renaissance, it's giving DOS art class, it's giving everything. πŸŽ€

           86 |  00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS
           88 |  000000B7 | MIDDLE DOT
           89 |  000000AC | NOT SIGN
           8A |  000000A6 | BROKEN BAR
           8B |  00002018 | LEFT SINGLE QUOTATION MARK
           8C |  00002019 | RIGHT SINGLE QUOTATION MARK
           8D |  00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS
           8E |  00002015 | HORIZONTAL BAR
           8F |  00000389 | GREEK CAPITAL LETTER ETA WITH TONOS
           90 |  0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS
           91 |  000003AA | GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
           92 |  0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS
           95 |  0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS
           96 |  000003AB | GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
           97 |  000000A9 | COPYRIGHT SIGN
           98 |  0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS
           99 |  000000B2 | SUPERSCRIPT TWO
           9A |  000000B3 | SUPERSCRIPT THREE
           9B |  000003AC | GREEK SMALL LETTER ALPHA WITH TONOS
           9C |  000000A3 | POUND SIGN
           9D |  000003AD | GREEK SMALL LETTER EPSILON WITH TONOS
           9E |  000003AE | GREEK SMALL LETTER ETA WITH TONOS
           9F |  000003AF | GREEK SMALL LETTER IOTA WITH TONOS
           A0 |  000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA
           A1 |  00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
           A2 |  000003CC | GREEK SMALL LETTER OMICRON WITH TONOS
           A3 |  000003CD | GREEK SMALL LETTER UPSILON WITH TONOS
           A4 |  00000391 | GREEK CAPITAL LETTER ALPHA
           A5 |  00000392 | GREEK CAPITAL LETTER BETA
           A6 |  00000393 | GREEK CAPITAL LETTER GAMMA
           A7 |  00000394 | GREEK CAPITAL LETTER DELTA
           A8 |  00000395 | GREEK CAPITAL LETTER EPSILON
           A9 |  00000396 | GREEK CAPITAL LETTER ZETA
           AA |  00000397 | GREEK CAPITAL LETTER ETA
           AB |  000000BD | VULGAR FRACTION ONE HALF
           AC |  00000398 | GREEK CAPITAL LETTER THETA
           AD |  00000399 | GREEK CAPITAL LETTER IOTA
           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 |  0000039A | GREEK CAPITAL LETTER KAPPA
           B6 |  0000039B | GREEK CAPITAL LETTER LAMDA
           B7 |  0000039C | GREEK CAPITAL LETTER MU
           B8 |  0000039D | GREEK CAPITAL LETTER NU
           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 |  0000039E | GREEK CAPITAL LETTER XI
           BE |  0000039F | GREEK CAPITAL LETTER OMICRON
           BF |  00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
           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 |  000003A0 | GREEK CAPITAL LETTER PI
           C7 |  000003A1 | GREEK CAPITAL LETTER RHO
           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 |  000003A3 | GREEK CAPITAL LETTER SIGMA
           D0 |  000003A4 | GREEK CAPITAL LETTER TAU
           D1 |  000003A5 | GREEK CAPITAL LETTER UPSILON
           D2 |  000003A6 | GREEK CAPITAL LETTER PHI
           D3 |  000003A7 | GREEK CAPITAL LETTER CHI
           D4 |  000003A8 | GREEK CAPITAL LETTER PSI
           D5 |  000003A9 | GREEK CAPITAL LETTER OMEGA
           D6 |  000003B1 | GREEK SMALL LETTER ALPHA
           D7 |  000003B2 | GREEK SMALL LETTER BETA
           D8 |  000003B3 | GREEK SMALL LETTER GAMMA
           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 |  000003B4 | GREEK SMALL LETTER DELTA
           DE |  000003B5 | GREEK SMALL LETTER EPSILON
           DF |  00002580 | UPPER HALF BLOCK
           E0 |  000003B6 | GREEK SMALL LETTER ZETA
           E1 |  000003B7 | GREEK SMALL LETTER ETA
           E2 |  000003B8 | GREEK SMALL LETTER THETA
           E3 |  000003B9 | GREEK SMALL LETTER IOTA
           E4 |  000003BA | GREEK SMALL LETTER KAPPA
           E5 |  000003BB | GREEK SMALL LETTER LAMDA
           E6 |  000003BC | GREEK SMALL LETTER MU
           E7 |  000003BD | GREEK SMALL LETTER NU
           E8 |  000003BE | GREEK SMALL LETTER XI
           E9 |  000003BF | GREEK SMALL LETTER OMICRON
           EA |  000003C0 | GREEK SMALL LETTER PI
           EB |  000003C1 | GREEK SMALL LETTER RHO
           EC |  000003C3 | GREEK SMALL LETTER SIGMA
           ED |  000003C2 | GREEK SMALL LETTER FINAL SIGMA
           EE |  000003C4 | GREEK SMALL LETTER TAU
           EF |  00000384 | GREEK TONOS
           F0 |  000000AD | SOFT HYPHEN
           F1 |  000000B1 | PLUS-MINUS SIGN
           F2 |  000003C5 | GREEK SMALL LETTER UPSILON

a couple things i need you to clock, because they're cute and a little chaotic: EC and ED are out of Greek alphabetical order β€” sigma shows up before final sigma, which is exactly how it's written here, no notes. and F0 through F2 are just chilling at the end with a soft hyphen, a plus-minus, and one lone small upsilon like it got left at the bus stop 😭

anyway that's the full mapping, down to the very last row β€” every local byte, every ISO-10646 code point, every description, all of it, nothing skipped 🫢 and there's still more page to go, so don't go anywhere.

...and the home stretch of the table, bestie, don't scroll away on me πŸ’…

  • F3 β†’ 000003C6 β€” GREEK SMALL LETTER PHI
  • F4 β†’ 000003C7 β€” GREEK SMALL LETTER CHI
  • F5 β†’ 000000A7 β€” SECTION SIGN
  • F6 β†’ 000003C8 β€” GREEK SMALL LETTER PSI
  • F7 β†’ 00000385 β€” GREEK DIALYTIKA TONOS
  • F8 β†’ 000000B0 β€” DEGREE SIGN
  • F9 β†’ 000000A8 β€” DIAERESIS
  • FA β†’ 000003C9 β€” GREEK SMALL LETTER OMEGA
  • FB β†’ 000003CB β€” GREEK SMALL LETTER UPSILON WITH DIALYTIKA
  • FC β†’ 000003B0 β€” GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
  • FD β†’ 000003CE β€” GREEK SMALL LETTER OMEGA WITH TONOS
  • FE β†’ 000025A0 β€” BLACK SQUARE
  • FF β†’ 000000A0 β€” NO-BREAK SPACE

And that's the whole map, 00 through FF, every single slot accounted for. Iconic behaviour, honestly 🌈


🫢 AUTHOR

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!

Like β€” respect the author, they did all the actual work and we're just out here reading the docs πŸ’–


πŸ¦‹ SEE ALSO

Go read those if you want the full lore, iykyk πŸ“šβœ¨


aaaand that's a wrap on the whole page, bestie πŸŽ€ ngl it was a lot of hex codes, but you ate it. This beauty is perl v5.42.0, dated 2025-01-22, straight from the User Contributed Perl Documentation vibes β€” go forth and recode your Greek characters responsibly πŸ’œπŸŒΈ