Locale:...:IBM285(3)
π Locale::RecodeData::IBM285(3) β no cap, it's a perl thing
Okay bestie, so this is a page from the User Contributed Perl Documentation section, section 3 of the manual β the module itself is Locale::RecodeData::IBM285. Buckle up, it's short but it's iconic π
β¨ NAME β¨
Locale::RecodeData::IBM285 β conversion routines for IBM285 π¦
That's it. That's the whole name. Short, sweet, slays.
πΈ SYNOPSIS πΈ
This module is internal to libintl. Do not use directly!
Read that again, bestie. Do not use directly. It's giving backstage-pass-only energy π β this thing lives inside libintl, and it's not for you to call. No cap.
π DESCRIPTION π
So this module is generated β like, not hand-written, it's built β¨ β and it contains the conversion tables and routines for IBM285 π
That's the whole vibe. It's a data module. It holds the tables, it does the converting, it minds its own business.
π«Ά COMMENTS π«Ά
Now this part's cute β these are the comments pulled straight out of the original charmap π (yes, we're preserving the receipt in full):
version: 1.0
source: IBM NLS RM Vol2 SE09-8002-01, March 1990
alias CP285
alias EBCDIC-CP-GB
So: version 1.0, sourced from IBM NLS RM Vol2 SE09-8002-01, March 1990, and it's got two aliases β CP285 and EBCDIC-CP-GB π
β οΈ Heads up bestie: the aliases listed above are not necessarily valid! Like, do NOT just assume they work. The manpage is literally telling you this, so listen π
π CHARACTER TABLE π
Okay so here's the part where the actual table lives β and the big thing to know:
The following table is sorted in the same order as the original charmap β
And all character codes are in hexadecimal β so do not come at this expecting decimal, okay? π₯
Also a tiny translation note, and it matters:
Please read'ISO-10646'as'ISO-10646-UCS4'β fr fr, that's the one π
(table drops next, keep scrolling bestie β more coming)
okay so we're in the character table now and it is LONG bestie, so I'm breaking it into bite-size blocks so your eyes don't glaze over π
Every row is Local | ISO-10646 | Description β the local byte on the left, the codepoint in the middle, the name on the right. No skipping, no summarizing, we're reading the whole thing π«Ά
π the header, for the record
Local | ISO-10646 | Description
-------+-----------+-------------------------------------------------
β¨ local 00 β 3F: the control-character corner
this whole block is giving "things that make your terminal do stuff instead of printing letters" π every name here is a control code, and the local byte and the codepoint are absolutely not the same number, so keep your eyes peeled π
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)
ngl the way that0Alocally isSINGLE-SHIFT TWO (SS2)whileLINE FEED (LF)is hiding down at local25β¦ that's the whole vibe of this codepage, everything is shuffled πͺοΈ not a bug, just how it's built π
πΈ local 40 β 7F: punctuation, accents, and the girlies
this chunk is where actual visible characters start showing up β space, letters with little hats and dots on them, and a whole lot of punctuation slay β¨
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 | 00000024 | DOLLAR SIGN
4B | 0000002E | FULL STOP
4C | 0000003C | LESS-THAN SIGN
4D | 00000028 | LEFT PARENTHESIS
4E | 0000002B | PLUS SIGN
4F | 0000007C | VERTICAL LINE
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 | 00000021 | EXCLAMATION MARK
5B | 000000A3 | POUND SIGN
5C | 0000002A | ASTERISK
5D | 00000029 | RIGHT PARENTHESIS
5E | 0000003B | SEMICOLON
5F | 000000AC | NOT SIGN
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
quick vibe check π΅οΈββοΈ<is at4C,>is at6E, and=is way over at7Eβ they are not neighbors and that's just the situation π don't assume ASCII order in here, bestie, you will get humbled
π¦ local 80 β BF: lowercase era + some European icons
okay this block ATE β lowercase letters, Γ¦, eth, thorn, angle quotes, currency signs, fractionsβ¦ it's giving "I contain multitudes" π
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 | 0000203E | OVERLINE
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 | 0000005B | LEFT SQUARE BRACKET
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 | 0000005E | CIRCUMFLEX ACCENT
BB | 0000005D | RIGHT SQUARE BRACKET
BC | 0000007E | TILDE
BD | 000000A8 | DIAERESIS
BE | 000000B4 | ACUTE ACCENT
BF | 000000D7 | MULTIPLICATION SIGN
tiny detail that matters:A1is the one and only row up in here whose codepoint is a four-digit-hex-plus0000203Eβ theOVERLINEsaid "I'm not like the other girls" and honestly? respect β¨ Alsoj(91) throughr(99) skipo-adjacent drama and thensthroughzpick up again atA2β it's a whole relay race πββοΈ
π§ local C0 β E7: uppercase + the curly-brace section
last visible chunk in this part, and it starts with brackets, hits a bunch of capital letters, then goes out with a lil flourish of Γ· and \ π
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
and that's where this part stops, bestie β we're mid-table at E7 and there's still more rows waiting, so don't you dare close the tab π€π keep scrolling, the rest is coming π«Ά
β¦and we're picking right back up at E8, no skipping, bestie, every single one of these little hex gremlins gets its moment β¨
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)
Like, look at that last one?? FF isn't even a letter, it's APPLICATION PROGRAM COMMAND (APC) β a whole control function just vibing at the end of the table π and <pink>the superscripts SUPERSCRIPT TWO and SUPERSCRIPT THREE living their best little lives at EA and FA? iconic. and then F0βF9 is literally just DIGIT ZERO through DIGIT NINE in a trench coat, very "I'm the numbers row now" energy π
π 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!code for details! (yes, that's really how it's written in the page β "code for details!" and all β I'm not fixing it, I'm respecting it π)
π«Ά Shoutout to Guido for real, 2002 to 2017 is a long commitment and this whole table exists because of it. crown emoji, no notes.
π SEE ALSO π
Locale::RecodeData(3)β the data side of the operation πLocale::Recode(3)β where the actual recoding happens β¨perl(1)β hi, it's your fave, the language itself πͺ
Alright bestie, that's the whole page β start to finish, 00 to FF, nothing dropped, everything accounted for π Go forth and recode responsibly (or at least know exactly what byte FF means when it hits you) π
Signed, sealed, delivered from perl v5.42.0, dated 2025-01-22 β that's the version and the date, and this manual page for Locale::...::IBM285(3) is officially a wrap π¦β
π¦ 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