Locale:...:IBM500(3)
π Locale::RecodeData::IBM500(3) π
okay so bestie, this one lives in the User Contributed Perl Documentation section, and the page header literally says Locale:...:IBM500(3) β that's the title, that's the vibe. it's a long one so buckle up, this is just part one π
β¨ NAME β¨
Locale::RecodeData::IBM500 β conversion routines for IBM500, periodt π
β¨ SYNOPSIS β¨
This module is internal to libintl. Do not use directly!
π¨ no cap, this is internal to libintl. do not use it directly! it's giving "staff only" door energy π
β¨ DESCRIPTION β¨
so this module is generated β like, nobody hand-wrote it, it just exists β and it contains the conversion tables and routines for IBM500. that's it, that's the whole job π¦
β¨ COMMENTS β¨
these comments got extracted straight out of the original charmap, iykyk:
version: 1.0
source: IBM NLS RM Vol2 SE09-8002-01, March 1990
alias CP500
alias 500
alias 500V1
alias EBCDIC-CP-BE
alias EBCDIC-CP-CH
so we got version: 1.0, the source is IBM NLS RM Vol2 SE09-8002-01, March 1990, and the aliases are CP500, 500, 500V1, EBCDIC-CP-BE, and EBCDIC-CP-CH π«Ά
β οΈ okay important: please note that the aliases listed above are not necessarily valid! don't come for me if one of them doesn't work, i literally told you π
β¨ CHARACTER TABLE β¨
the following table is sorted in the same order as the original charmap β same order, no reshuffling, we respect the source π
all character codes are in hexadecimal β
and please read 'ISO-10646' as 'ISO-10646-UCS4' β like, when you see the short one, mentally swap in the long one, that's the assignment bestie π§
more parts coming, don't go anywhere π
Local | ISO-10646 | Description
-------+-----------+-------------------------------------------------
Okay bestie, so the table keeps going and honestly? This first stretch is the feral part π β all the control codes, and they are not where you'd expect them. Like, look at 00 through 3F and tell me this isn't giving chaos gremlin energy. Read every column though, fr fr:
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 | 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)
Not me reading this and going "wait,05isCHARACTER TABULATION (HT)and25isLINE FEED (LF)" π β no cap, the low half here is doing its own thing, so don't assume anything, just read the row.
Now we hit the printable zone, starting at 40 with a whole SPACE situation, and it is highkey unhinged in the best way β accents first, brackets and punctuation sprinkled through like confetti π:
Local | ISO-10646 | Description
-------+-----------+-------------------------------------------------
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 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
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 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
4A | 0000005B | LEFT SQUARE BRACKET
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 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
52 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
53 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
54 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
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 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
59 | 000000DF | LATIN SMALL LETTER SHARP S (German)
5A | 0000005D | RIGHT SQUARE BRACKET
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 | 000000A6 | BROKEN BAR
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 | 00000060 | GRAVE ACCENT
7A | 0000003A | COLON
7B | 00000023 | NUMBER SIGN
7C | 00000040 | COMMERCIAL AT
7D | 00000027 | APOSTROPHE
7E | 0000003D | EQUALS SIGN
7F | 00000022 | QUOTATION MARK
See what I mean? 7C is COMMERCIAL AT and 7F is QUOTATION MARK β the vibes are immaculate but the layout is a scavenger hunt ππ
. Also 59 being LATIN SMALL LETTER SHARP S (German)? We love a multilingual icon π«Ά.
Chunk three, 80 onwards β lowercase letters finally show up but they're scattered, plus angles, eth, thorn, and the whole accented squad arriving fashionably late β¨:
Local | ISO-10646 | Description
-------+-----------+-------------------------------------------------
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 | 000000B0 | DEGREE SIGN
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 | 0000007E | TILDE
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 | 000000A3 | POUND SIGN
B2 | 000000A5 | YEN SIGN
B3 | 000000B7 | MIDDLE DOT
B4 | 000000A9 | COPYRIGHT SIGN
B5 | 000000A7 | SECTION SIGN
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 | 000000AF | MACRON
BD | 000000A8 | DIAERESIS
BE | 000000B4 | ACUTE ACCENT
BF | 000000D7 | MULTIPLICATION SIGN
AA and AB are the inverted punctuation besties INVERTED EXCLAMATION MARK and INVERTED QUESTION MARK and honestly they're so aesthetic ππ. Also shoutout to B7, B8, B9 β VULGAR FRACTION ONE QUARTER, VULGAR FRACTION ONE HALF, VULGAR FRACTION THREE QUARTERS β iconic trio, no notes π.
Final stretch for this part: the capitals roll in at C1, and then we're swimming in accented letters, symbols, and one SOFT HYPHEN at CA that is lowkey trying to be sneaky π:
Local | ISO-10646 | Description
-------+-----------+-------------------------------------------------
C0 | 0000007B | LEFT CURLY BRACKET
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 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
CE | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
CF | 000000F5 | LATIN SMALL LETTER O WITH TILDE
D0 | 0000007D | RIGHT CURLY BRACKET
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 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
DE | 000000FA | LATIN SMALL LETTER U WITH ACUTE
DF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
E0 | 0000005C | REVERSE SOLIDUS
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
Notice how C1 through C9 are A through I, then CA is like "ope, SOFT HYPHEN" and then it's accented Os for a sec before D1 picks back up at J and runs to R? The way this table keeps you on your toes is genuinely main character energy πβ. And DA sitting there as SUPERSCRIPT ONE between the R and the umlaut Us? Weird flex but ok π
.
That's where E7 leaves us, bestie β the table's still going, and the next part picks it right back up from there π¦.
...and we're back in the table, bestie, picking up right where we left off at E8 β no cap, the vibes do not stop π
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)
Okay so like β FF is literally out here being APPLICATION PROGRAM COMMAND (APC) and that's just the most mysterious main-character byte in the whole table. We respect it. π«Ά
π 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 π
π¦ SEE ALSO π¦
Ngl bestie, if you made it all the way down here you deserve a little treat π β go read those three, they're the rest of the lore iykyk β¨
And that's a wrap on the whole page, fr fr π This one came to you as perl v5.42.0, dated 2025-01-22, and it lives under the name Locale:...:IBM500(3) β slay, you read the entire thing, iconic behaviour honestly πβ¨
π¦ 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