Locale:...:IBM278(3)

✨ NAME ✨

okay so bestie, this is the User Contributed Perl Documentation manual page for Locale::RecodeData::IBM278 β€” literally Conversion routines for IBM278. The manual name is folded up here near the top instead of copy-pasting that header line, because we're cute like that πŸŽ€


πŸ’… SYNOPSIS πŸ’…

bestie, it says it right here and it is serious:

This module is internal to libintl.  Do not use directly!
like, do not use it directly β€” it's internal to libintl 🚫

🌸 DESCRIPTION 🌸

okay so this module is generated, and it contains the conversion tables and routines for IBM278. That's the whole vibe ✨


πŸ¦‹ COMMENTS πŸ¦‹

The following comments have been extracted from the original charmap β€” no cap:

version: 1.0
 source: IBM NLS RM Vol2 SE09-8002-01, March 1990
alias CP278
alias EBCDIC-CP-FI
alias EBCDIC-CP-SE

And bestie, please note: the aliases listed above are not necessarily valid! So don't just assume they're all gonna slay πŸ’…


πŸ‘‘ CHARACTER TABLE πŸ‘‘

okay so the following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. And please read 'ISO-10646' as 'ISO-10646-UCS4' β€” yes, literally that πŸ”₯

okay so continuing right where we left off, bestie β€” this is the actual table, the main character of the whole page πŸ‘‘ Three columns, read them left to right: the Local code, the ISO-10646 code point it maps to, and the description. First chunk is the low end of the map, and it is chaotic:

        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)

like, look at 04 β†’ 0000009C and 07 β†’ 0000007F β€” the numbers are not in order and that is genuinely not a typo, that's just how this table is laid out πŸ’€ don't try to "fix" it bestie, it's doing its thing.


next block, 40 through 7F, and this is where it starts looking like a keyboard had a glow-up. accents, brackets, LATIN SMALL LETTER SHARP S, the whole aesthetic ✨:

           40 |  00000020 | SPACE
           41 |  000000A0 | NO-BREAK SPACE
           42 |  000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
           43 |  0000007B | LEFT CURLY BRACKET
           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 |  000000A7 | SECTION 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 |  00000060 | GRAVE ACCENT
           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 |  00000023 | NUMBER SIGN
           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 |  000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
           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 |  000000E9 | LATIN SMALL LETTER E WITH ACUTE
           7A |  0000003A | COLON
           7B |  000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
           7C |  000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
           7D |  00000027 | APOSTROPHE
           7E |  0000003D | EQUALS SIGN
           7F |  00000022 | QUOTATION MARK

40 being SPACE while 41 is NO-BREAK SPACE is such a niche flex honestly, and 7F landing on QUOTATION MARK is giving "the last one is the gossip" 🫢


okay 80 up to BF, lowercase era. this is where the letters start showing up properly and there's some Icelandic representation in the mix (ETH, THORN, we love to see it) 🧊:

           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 |  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 |  0000005B | LEFT SQUARE BRACKET
           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

BC mapping to 0000203E for OVERLINE is the one four-digit-plus entry in this chunk, so yeah, she's special πŸ’… and honestly VULGAR FRACTION ONE QUARTER / ONE HALF / THREE QUARTERS back to back is such a serve for anyone doing recipe math 😭


last chunk in this part, C0 through E6 β€” uppercase szn, plus all the symbols, punctuation and the tail end. not E6 being where we run out of table πŸ‘€:

           C0 |  000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
           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 |  000000A6 | BROKEN BAR
           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

like CA β†’ SOFT HYPHEN right in the middle of the uppercase run, and DA β†’ SUPERSCRIPT ONE hanging out between R and U WITH CIRCUMFLEX β€” iconic placement choices, truly no notes πŸŽ€ and that's the table as far as this part goes, bestie πŸ¦‹

…and we're back for the final stretch of the character table, bestie. no cap, every single row is here β€” picking up right at E7:

E7 |  00000058 | LATIN CAPITAL LETTER X
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 |  00000040 | COMMERCIAL AT
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)

and that's the whole table, periodt. πŸ’… FF is the APPLICATION PROGRAM COMMAND (APC) and honestly it's giving final-boss energy, but we're done β€” every row accounted for, no skips, no cap. 🫢


πŸ‘‘ AUTHOR πŸ‘‘

so the author line is literally this, and we keep it exactly as written (yes, including the iconic double details!code for details! β€” we don't fix it, we stan it πŸ™ˆ):

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!

all rights reserved, bestie. the source code has the full details, and the URL + email are right there if you need to reach out. πŸ’Œ


🌈 SEE ALSO 🌈

go check these out, they're literally the squad:


and that's a wrap on this whole manpage! it's from perl v5.42.0, dated 2025-01-22. stay iconic, stay curious, and may your locale always recode correctly πŸ’–βœ¨πŸ’