Locale:...:IBM277(3)
π Locale::RecodeData::IBM277 π
okay so bestie, you're looking at Locale::RecodeData::IBM277(3) β that's the User Contributed Perl Documentation section, iykyk. And yes, the full manual name is literally Locale::RecodeData::IBM277, we're just folding it in up here at the top so it doesn't get lonely. π«Ά
β¨ NAME β¨
Locale::RecodeData::IBM277 β conversion routines for IBM277 π
πΈ SYNOPSIS πΈ
okay so read this part carefully because it's giving hands off:
This module is internal to libintl. Do not use directly! π«
Like, fr fr, it's not for you. It's not for me. It's internal. Respect the boundary π«Ά
π DESCRIPTION π
So what is this thing? It's a module that gets generated (not hand-written, bestie, the machine made it), and it contains the conversion tables and routines for IBM277. That's it. That's the whole job. It converts. It tables. It slays. β¨
π§ COMMENTS π§
The following comments have been extracted from the original charmap β so these are the receipts, straight from the source, no notes:
version: 1.0
source: IBM NLS RM Vol2 SE09-8002-01, March 1990
alias EBCDIC-CP-DK
alias EBCDIC-CP-NO
β οΈ okay important: Please note that aliases listed above are not necessarily valid! Like, don't just assume they work, bestie. They're listed, that's all. A vibe check is required before you trust them π
π¦ CHARACTER TABLE π¦
The following table is sorted in the same order as the original charmap β same order, no reshuffling, we're not that kind of module π
All character codes are in hexadecimal. All of them. Every single one π₯
And please, when you see ISO-10646 anywhere in here, read it as ISO-10646-UCS4. Not a drill, just a naming thing. π
okay so that's where this part wraps β the table itself is coming up, and there's more where this came from, so stay tuned bestie π
okay bestie, real talk: we are literally in the middle of the table right now π
β the Local | ISO-10646 | Description grid, three columns, one row at a time. Part 1 got us set up, and now we're just gonna walk it down together. Nothing scary. Just vibes and hex. π¦
Same three columns the whole way: the local byte code on the left, the ISO-10646 value in the middle, the name on the right. Let's go. β¨
π the bottom of the table β 00 to 1F π
So these are the cute little low ones, and ngl the local order is not the order you'd expect β the way <pink>04isSTRING TERMINATOR (ST)while07</pink> is straight up DELETE (DEL)? it's giving chaos, but it's the map, so we respect it. π
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)
Lowkey obsessed with how 05 is CHARACTER TABULATION (HT) and 0B is LINE TABULATION (VT) and 0C is FORM FEED (FF) β the classics are right there, just chillin' in the middle of all this control-code drama. πΈ
π¦ 20 to 3F β the rest of the control zone π¦
Okay so this block is where the weird little gremlins live β PADDING CHARACTER (PAD), HIGH OCTET PRESET (HOP), BREAK PERMITTED HERE (BPH), NO BREAK HERE (NBH), INDEX (IND). Not me reading NO BREAK HERE in a very serious tone π
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)
bestie. <hotpink>25isLINE FEED (LF). 27</hotpink> is ESCAPE (ESC). <hotpink>2FisBELL (BEL)and37</hotpink> is END OF TRANSMISSION (EOT). If you've ever wondered where those live in this locale, that's the answer, no cap. π
π 40 to 7F β punctuation town, population: chaos π
This is the text part, and it's giving main-character energy because the punctuation is all shuffled around. <purple>47isRIGHT CURLY BRACKET, 4C</purple> is LESS-THAN SIGN, <purple>4FisEXCLAMATION MARK, 5C</purple> is ASTERISK, <purple>60isHYPHEN-MINUS, 61</purple> is SOLIDUS. Do not assume your ASCII muscle memory works here β it absolutely does not, and I love that for us. π
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 | 0000007D | RIGHT CURLY BRACKET
48 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
49 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
4A | 00000023 | NUMBER 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 | 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 | 000000A4 | CURRENCY SIGN
5B | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
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 | 00000024 | DOLLAR SIGN
68 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
69 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
6A | 000000F8 | LATIN SMALL LETTER O WITH STROKE
6B | 0000002C | COMMA
6C | 00000025 | PERCENT SIGN
6D | 0000005F | LOW LINE
6E | 0000003E | GREATER-THAN SIGN
6F | 0000003F | QUESTION MARK
70 | 000000A6 | BROKEN BAR
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 | 000000C6 | LATIN CAPITAL LETTER AE
7C | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
7D | 00000027 | APOSTROPHE
7E | 0000003D | EQUALS SIGN
7F | 00000022 | QUOTATION MARK
Not <purple>59beingLATIN SMALL LETTER SHARP S (German)β iconic. And7B</purple> being LATIN CAPITAL LETTER AE while <purple>7Fis justQUOTATION MARK`? the range is unhinged and I mean that with love. π
π§ 80 to BF β the lowercase squad arrives π§
and here's where the Latin letters finally show up in lowercase order: <mint>81</mint> through <mint>89</mint> is a b c d e f g h i, and then <mint>91</mint> through <mint>99</mint> picks up j k l m n o p q r. It's giving alphabet, but make it EBCDIC. π«Ά
80 | 00000040 | COMMERCIAL AT
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 | 0000007B | LEFT CURLY BRACKET
9D | 000000B8 | CEDILLA
9E | 0000005B | LEFT SQUARE BRACKET
9F | 0000005D | RIGHT SQUARE BRACKET
A0 | 000000B5 | MICRO SIGN
A1 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
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 | 0000203E | OVERLINE
BD | 000000A8 | DIAERESIS
BE | 000000B4 | ACUTE ACCENT
BF | 000000D7 | MULTIPLICATION SIGN
shoutout to <mint>BC</mint> being 0000203E / OVERLINE β the one row in this whole stretch that's not a 000000xx value, and it knows it. main character behaviour fr fr. π₯ also <mint>A2</mint> jumps out of order to LATIN SMALL LETTER S and <mint>A9</mint> is LATIN SMALL LETTER Zβ¦ the s-to-z situation is just. a lot. π
π C0 to E7 β capitals, accents, and a soft hyphen π
Last stretch for this part, bestie! Here come the caps: <lavender>C1</lavender> to <lavender>C9</lavender> is A B C D E F G H I, and <lavender>D1</lavender> to <lavender>D9</lavender> is J K L M N O P Q R, then <lavender>E2</lavender> to <lavender>E7</lavender> finishes with S T U V W X. Slay. π
C0 | 000000E6 | LATIN SMALL LETTER AE
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 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
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 | 0000007E | TILDE
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
The way <lavender>CA</lavender> is SOFT HYPHEN and <lavender>DA</lavender> is SUPERSCRIPT ONE and <lavender>DC</lavender> is TILDE β the random little one-offs are genuinely my favourite thing about this table ππ«Ά
Bestie heads up: we stop at local E7 here, but the table is not done β it keeps rolling past this. Don't screenshot and dip yet, the next chunk picks it right back up. π
β and that's where we're pausing, mid-grid, with E7 sitting there like LATIN CAPITAL LETTER X waiting for its friends. πΈ Next rows are still loading, iykyk. β¨
okay bestie, the tableβs grand finale is giving main-character energy, and every row is still iconic:
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)
Thatβs the whole character table, bestie β we made it to FF, and the last one is literally APPLICATION PROGRAM COMMAND (APC), which sounds like it has its own group chat. π
β¨ 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!
And yes, that doubled code for details! is exactly how it shows up β we donβt edit the icon, we just respect it. π«Ά
π SEE ALSO π
Like, go read these too, iykyk β theyβre the supporting cast and they ate. π
Huge thank-you to perl v5.42.0 and the 2025-01-22 timestamp for bringing this Locale:...:IBM277(3) page into our lives β mwah πβ¨
π¦ 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