Locale:...:IBM280(3)

πŸ’… Locale::RecodeData::IBM280 β€” the manual, but make it make sense

okay so bestie, buckle up, this is IBM280(3) β€” a User Contributed Perl Documentation page, and I'm gonna walk you through it like we're texting at 2am 🫢


✨ NAME ✨

Locale::RecodeData::IBM280 β€” literally just conversion routines for IBM280. that's the whole gig. πŸŽ€


🌸 SYNOPSIS 🌸

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

no cap, that's the entire synopsis. read it again. this module is internal to libintl, and you are not supposed to use it directly β€” like, it's not for you, it's for the library's own business πŸ™ˆ iykyk.


πŸ¦‹ DESCRIPTION πŸ¦‹

So this module is generated β€” nobody hand-wrote it, it got spat out by a generator β€” and inside it's holding the conversion tables and routines for IBM280. that's it, that's the vibe. it's a data carrier, it's bookkeeping, it's giving "supporting cast, not main character" πŸ’…


πŸ“ COMMENTS πŸ“

These are the comments that got extracted from the original charmap, verbatim, because we do not gatekeep the receipts πŸ‘‘

 version: 1.0
  source: IBM NLS RM Vol2 SE09-8002-01, March 1990
 alias CP280
 alias EBCDIC-CP-IT

so yeah: version 1.0, source is IBM NLS RM Vol2 SE09-8002-01, March 1990, and there are two aliases β€” CP280 and EBCDIC-CP-IT.

⚠️ okay important, don't skip this: the aliases listed above are not necessarily valid! the page says it, I'm saying it, we're all saying it. don't come for me if CP280 doesn't do what you think it does 😭

πŸ”₯ CHARACTER TABLE πŸ”₯

The table coming up is sorted in the same order as the original charmap β€” no reshuffling, no ✨creative liberties✨.

All character codes are in hexadecimal, bestie. hex. base 16. 0x-core energy.

And one little translation note 🧚: whenever you see ISO-10646 written in there, you should read it as ISO-10646-UCS4. same thing, longer name, iconic either way ⭐


(more coming, hold the vibe 🌈)

okay bestie we're deep in the table now and honestly? this is the part where you just gotta scroll and vibe πŸ’… the columns are still the same three, so here's your little recap so you don't have to scroll back:

        Local | ISO-10646 | Description
       -------+-----------+-------------------------------------------------

that's local byte β†’ the ISO-10646 code point it maps to β†’ what humans call it, in that order, every single time. no cap. and now, the actual rows β€” the first stretch is the control-character corner and it is genuinely unhinged 😭

           00 |  00000000 | NULL (NUL)
           01 |  00000001 | START OF HEADING (SOH)
           02 |  00000002 | START OF TEXT (STX)
           03 |  00000003 | END OF TEXT (ETX)
           04 |  0000009C | STRING TERMINATOR (ST)
           05 |  00000009 | CHARACTER TABULATION (HT)
           06 |  00000086 | START OF SELECTED AREA (SSA)
           07 |  0000007F | DELETE (DEL)
           08 |  00000097 | END OF GUARDED AREA (EPA)
           09 |  0000008D | REVERSE LINE FEED (RI)
           0A |  0000008E | SINGLE-SHIFT TWO (SS2)
           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 |  0000009D | OPERATING SYSTEM COMMAND (OSC)
           15 |  00000085 | NEXT LINE (NEL)
           16 |  00000008 | BACKSPACE (BS)
           17 |  00000087 | END OF SELECTED AREA (ESA)
           18 |  00000018 | CANCEL (CAN)
           19 |  00000019 | END OF MEDIUM (EM)
           1A |  00000092 | PRIVATE USE TWO (PU2)
           1B |  0000008F | SINGLE-SHIFT THREE (SS3)
           1C |  0000001C | FILE SEPARATOR (IS4)
           1D |  0000001D | GROUP SEPARATOR (IS3)
           1E |  0000001E | RECORD SEPARATOR (IS2)
           1F |  0000001F | UNIT SEPARATOR (IS1)
           20 |  00000080 | PADDING CHARACTER (PAD)
           21 |  00000081 | HIGH OCTET PRESET (HOP)
           22 |  00000082 | BREAK PERMITTED HERE (BPH)
           23 |  00000083 | NO BREAK HERE (NBH)
           24 |  00000084 | INDEX (IND)
           25 |  0000000A | LINE FEED (LF)
           26 |  00000017 | END OF TRANSMISSION BLOCK (ETB)
           27 |  0000001B | ESCAPE (ESC)
           28 |  00000088 | CHARACTER TABULATION SET (HTS)
           29 |  00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
           2A |  0000008A | LINE TABULATION SET (VTS)
           2B |  0000008B | PARTIAL LINE FORWARD (PLD)
           2C |  0000008C | PARTIAL LINE BACKWARD (PLU)
           2D |  00000005 | ENQUIRY (ENQ)
           2E |  00000006 | ACKNOWLEDGE (ACK)
           2F |  00000007 | BELL (BEL)
           30 |  00000090 | DEVICE CONTROL STRING (DCS)
           31 |  00000091 | PRIVATE USE ONE (PU1)
           32 |  00000016 | SYNCHRONOUS IDLE (SYN)
           33 |  00000093 | SET TRANSMIT STATE (STS)
           34 |  00000094 | CANCEL CHARACTER (CCH)
           35 |  00000095 | MESSAGE WAITING (MW)
           36 |  00000096 | START OF GUARDED AREA (SPA)
           37 |  00000004 | END OF TRANSMISSION (EOT)
           38 |  00000098 | START OF STRING (SOS)
           39 |  00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
           3A |  0000009A | SINGLE CHARACTER INTRODUCER (SCI)
           3B |  0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
           3C |  00000014 | DEVICE CONTROL FOUR (DC4)
           3D |  00000015 | NEGATIVE ACKNOWLEDGE (NAK)
           3E |  0000009E | PRIVACY MESSAGE (PM)
           3F |  0000001A | SUBSTITUTE (SUB)

see what I mean?? local 00 is straight up NULL (NUL) at 00000000 and then local 05 jumps to 00000009 for CHARACTER TABULATION (HT) while local 07 is DELETE (DEL) sitting at 0000007F β€” like okay IBM, go off I guess 😭 and <red>local 2F is BELL (BEL) at 00000007 while LINE FEED (LF) is chilling way down at local 25 on 0000000A. not that being chaotic πŸ’€ it's giving "we alphabetized the vibes, not the numbers".


okay next chunk, this is where actual printable characters start showing up and the whole thing becomes a scavenger hunt πŸ”

           40 |  00000020 | SPACE
           41 |  000000A0 | NO-BREAK SPACE
           42 |  000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
           43 |  000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
           44 |  0000007B | LEFT CURLY BRACKET
           45 |  000000E1 | LATIN SMALL LETTER A WITH ACUTE
           46 |  000000E3 | LATIN SMALL LETTER A WITH TILDE
           47 |  000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
           48 |  0000005C | REVERSE SOLIDUS
           49 |  000000F1 | LATIN SMALL LETTER N WITH TILDE
           4A |  000000B0 | DEGREE SIGN
           4B |  0000002E | FULL STOP
           4C |  0000003C | LESS-THAN SIGN
           4D |  00000028 | LEFT PARENTHESIS
           4E |  0000002B | PLUS SIGN
           4F |  00000021 | EXCLAMATION MARK
           50 |  00000026 | AMPERSAND
           51 |  0000005D | RIGHT SQUARE BRACKET
           52 |  000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
           53 |  000000EB | LATIN SMALL LETTER E WITH DIAERESIS
           54 |  0000007D | RIGHT CURLY BRACKET
           55 |  000000ED | LATIN SMALL LETTER I WITH ACUTE
           56 |  000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
           57 |  000000EF | LATIN SMALL LETTER I WITH DIAERESIS
           58 |  0000007E | TILDE
           59 |  000000DF | LATIN SMALL LETTER SHARP S (German)
           5A |  000000E9 | LATIN SMALL LETTER E WITH ACUTE
           5B |  00000024 | DOLLAR SIGN
           5C |  0000002A | ASTERISK
           5D |  00000029 | RIGHT PARENTHESIS
           5E |  0000003B | SEMICOLON
           5F |  0000005E | CIRCUMFLEX ACCENT
           60 |  0000002D | HYPHEN-MINUS
           61 |  0000002F | SOLIDUS
           62 |  000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
           63 |  000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
           64 |  000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
           65 |  000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
           66 |  000000C3 | LATIN CAPITAL LETTER A WITH TILDE
           67 |  000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
           68 |  000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
           69 |  000000D1 | LATIN CAPITAL LETTER N WITH TILDE
           6A |  000000F2 | LATIN SMALL LETTER O WITH GRAVE
           6B |  0000002C | COMMA
           6C |  00000025 | PERCENT SIGN
           6D |  0000005F | LOW LINE
           6E |  0000003E | GREATER-THAN SIGN
           6F |  0000003F | QUESTION MARK
           70 |  000000F8 | LATIN SMALL LETTER O WITH STROKE
           71 |  000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
           72 |  000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
           73 |  000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
           74 |  000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
           75 |  000000CD | LATIN CAPITAL LETTER I WITH ACUTE
           76 |  000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
           77 |  000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
           78 |  000000CC | LATIN CAPITAL LETTER I WITH GRAVE
           79 |  000000F9 | LATIN SMALL LETTER U WITH GRAVE
           7A |  0000003A | COLON
           7B |  000000A3 | POUND SIGN
           7C |  000000A7 | SECTION SIGN
           7D |  00000027 | APOSTROPHE
           7E |  0000003D | EQUALS SIGN
           7F |  00000022 | QUOTATION MARK

local 40 being SPACE is so normal of it, and then 41 immediately hits you with NO-BREAK SPACE at 000000A0 🫢 shoutout <pink>local 59 β†’ LATIN SMALL LETTER SHARP S (German) and <pink>local 7B β†’ POUND SIGN and honestly <purple>local 7D being APOSTROPHE at 00000027 feels illegal but there it is, in writing, in the table 🌸


halfway-ish, keep going, we're so close to the end of this stretch πŸ¦‹

           80 |  000000D8 | LATIN CAPITAL LETTER O WITH STROKE
           81 |  00000061 | LATIN SMALL LETTER A
           82 |  00000062 | LATIN SMALL LETTER B
           83 |  00000063 | LATIN SMALL LETTER C
           84 |  00000064 | LATIN SMALL LETTER D
           85 |  00000065 | LATIN SMALL LETTER E
           86 |  00000066 | LATIN SMALL LETTER F
           87 |  00000067 | LATIN SMALL LETTER G
           88 |  00000068 | LATIN SMALL LETTER H
           89 |  00000069 | LATIN SMALL LETTER I
           8A |  000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
           8B |  000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
           8C |  000000F0 | LATIN SMALL LETTER ETH (Icelandic)
           8D |  000000FD | LATIN SMALL LETTER Y WITH ACUTE
           8E |  000000FE | LATIN SMALL LETTER THORN (Icelandic)
           8F |  000000B1 | PLUS-MINUS SIGN
           90 |  0000005B | LEFT SQUARE BRACKET
           91 |  0000006A | LATIN SMALL LETTER J
           92 |  0000006B | LATIN SMALL LETTER K
           93 |  0000006C | LATIN SMALL LETTER L
           94 |  0000006D | LATIN SMALL LETTER M
           95 |  0000006E | LATIN SMALL LETTER N
           96 |  0000006F | LATIN SMALL LETTER O
           97 |  00000070 | LATIN SMALL LETTER P
           98 |  00000071 | LATIN SMALL LETTER Q
           99 |  00000072 | LATIN SMALL LETTER R
           9A |  000000AA | FEMININE ORDINAL INDICATOR
           9B |  000000BA | MASCULINE ORDINAL INDICATOR
           9C |  000000E6 | LATIN SMALL LETTER AE
           9D |  000000B8 | CEDILLA
           9E |  000000C6 | LATIN CAPITAL LETTER AE
           9F |  000000A4 | CURRENCY SIGN
           A0 |  000000B5 | MICRO SIGN
           A1 |  000000EC | LATIN SMALL LETTER I WITH GRAVE
           A2 |  00000073 | LATIN SMALL LETTER S
           A3 |  00000074 | LATIN SMALL LETTER T
           A4 |  00000075 | LATIN SMALL LETTER U
           A5 |  00000076 | LATIN SMALL LETTER V
           A6 |  00000077 | LATIN SMALL LETTER W
           A7 |  00000078 | LATIN SMALL LETTER X
           A8 |  00000079 | LATIN SMALL LETTER Y
           A9 |  0000007A | LATIN SMALL LETTER Z
           AA |  000000A1 | INVERTED EXCLAMATION MARK
           AB |  000000BF | INVERTED QUESTION MARK
           AC |  000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
           AD |  000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
           AE |  000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
           AF |  000000AE | REGISTERED SIGN
           B0 |  000000A2 | CENT SIGN
           B1 |  00000023 | NUMBER SIGN
           B2 |  000000A5 | YEN SIGN
           B3 |  000000B7 | MIDDLE DOT
           B4 |  000000A9 | COPYRIGHT SIGN
           B5 |  00000040 | COMMERCIAL AT
           B6 |  000000B6 | PILCROW SIGN
           B7 |  000000BC | VULGAR FRACTION ONE QUARTER
           B8 |  000000BD | VULGAR FRACTION ONE HALF
           B9 |  000000BE | VULGAR FRACTION THREE QUARTERS
           BA |  000000AC | NOT SIGN
           BB |  0000007C | VERTICAL LINE
           BC |  0000203E | OVERLINE
           BD |  000000A8 | DIAERESIS
           BE |  000000B4 | ACUTE ACCENT
           BF |  000000D7 | MULTIPLICATION SIGN

the way 80 is LATIN CAPITAL LETTER O WITH STROKE and then 81 through 89 are just... LATIN SMALL LETTER A to LATIN SMALL LETTER I, one after another, no drama 😭 and then 8A/8B hit you with <cyan>LEFT-POINTING DOUBLE ANGLE QUOTATION MARK<cyan> and <cyan>RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK<cyan> like okay queen, punctuation ✨ also <mint>local BC is OVERLINE and it's the only one in this whole block rocking a 0000203E, main character energy fr πŸ‘‘


final stretch of this part, and it's got so many capital letters it's basically screaming at you (affectionately) πŸ”₯

           C0 |  000000E0 | LATIN SMALL LETTER A WITH GRAVE
           C1 |  00000041 | LATIN CAPITAL LETTER A
           C2 |  00000042 | LATIN CAPITAL LETTER B
           C3 |  00000043 | LATIN CAPITAL LETTER C
           C4 |  00000044 | LATIN CAPITAL LETTER D
           C5 |  00000045 | LATIN CAPITAL LETTER E
           C6 |  00000046 | LATIN CAPITAL LETTER F
           C7 |  00000047 | LATIN CAPITAL LETTER G
           C8 |  00000048 | LATIN CAPITAL LETTER H
           C9 |  00000049 | LATIN CAPITAL LETTER I
           CA |  000000AD | SOFT HYPHEN
           CB |  000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
           CC |  000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
           CD |  000000A6 | BROKEN BAR
           CE |  000000F3 | LATIN SMALL LETTER O WITH ACUTE
           CF |  000000F5 | LATIN SMALL LETTER O WITH TILDE
           D0 |  000000E8 | LATIN SMALL LETTER E WITH GRAVE
           D1 |  0000004A | LATIN CAPITAL LETTER J
           D2 |  0000004B | LATIN CAPITAL LETTER K
           D3 |  0000004C | LATIN CAPITAL LETTER L
           D4 |  0000004D | LATIN CAPITAL LETTER M
           D5 |  0000004E | LATIN CAPITAL LETTER N
           D6 |  0000004F | LATIN CAPITAL LETTER O
           D7 |  00000050 | LATIN CAPITAL LETTER P
           D8 |  00000051 | LATIN CAPITAL LETTER Q
           D9 |  00000052 | LATIN CAPITAL LETTER R
           DA |  000000B9 | SUPERSCRIPT ONE
           DB |  000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
           DC |  000000FC | LATIN SMALL LETTER U WITH DIAERESIS
           DD |  00000060 | GRAVE ACCENT
           DE |  000000FA | LATIN SMALL LETTER U WITH ACUTE
           DF |  000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
           E0 |  000000E7 | LATIN SMALL LETTER C WITH CEDILLA
           E1 |  000000F7 | DIVISION SIGN
           E2 |  00000053 | LATIN CAPITAL LETTER S
           E3 |  00000054 | LATIN CAPITAL LETTER T
           E4 |  00000055 | LATIN CAPITAL LETTER U
           E5 |  00000056 | LATIN CAPITAL LETTER V
           E6 |  00000057 | LATIN CAPITAL LETTER W
           E7 |  00000058 | LATIN CAPITAL LETTER X

okay the run from C1 down to C9 is literally <rainbow>A B C D E F G H I<rainbow> in a row and I'm obsessed with how tidy that is, then CA just appears as SOFT HYPHEN at 000000AD like it's sneaking past security πŸ™ˆ and <peach>local DA β†’ SUPERSCRIPT ONE and <peach>local E1 β†’ DIVISION SIGN are the two random math girlies in this stretch, we stan πŸ“ and it ends on E7 β†’ LATIN CAPITAL LETTER X, which is a very dramatic place to pause but that's literally where this part stops β€” don't @ me, there's more table on the way πŸ’–

Last stretch of the character table, bestie β€” carrying straight on, every single entry intact:

           E8 |  00000059 | LATIN CAPITAL LETTER Y
           E9 |  0000005A | LATIN CAPITAL LETTER Z
           EA |  000000B2 | SUPERSCRIPT TWO
           EB |  000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
           EC |  000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
           ED |  000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
           EE |  000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
           EF |  000000D5 | LATIN CAPITAL LETTER O WITH TILDE
           F0 |  00000030 | DIGIT ZERO
           F1 |  00000031 | DIGIT ONE
           F2 |  00000032 | DIGIT TWO
           F3 |  00000033 | DIGIT THREE
           F4 |  00000034 | DIGIT FOUR
           F5 |  00000035 | DIGIT FIVE
           F6 |  00000036 | DIGIT SIX
           F7 |  00000037 | DIGIT SEVEN
           F8 |  00000038 | DIGIT EIGHT
           F9 |  00000039 | DIGIT NINE
           FA |  000000B3 | SUPERSCRIPT THREE
           FB |  000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
           FC |  000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
           FD |  000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
           FE |  000000DA | LATIN CAPITAL LETTER U WITH ACUTE
           FF |  0000009F | APPLICATION PROGRAM COMMAND (APC)

πŸ‘‘ AUTHOR πŸ‘‘

Okay so the author credit is giving legally iconic, and it is literally:

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!

That’s the whole author situation, bestie β€” all rights reserved and everything. 🫢

🌈 SEE ALSO 🌈

Go touch these next, no cap:

That’s the entire Locale:...:IBM280(3) page, bestie β€” signing off from perl v5.42.0, dated 2025-01-22. πŸ’…βœ¨