Locale:...:IBM1004(3)

πŸ’– NAME πŸ’–

Locale::RecodeData::IBM1004 β€” bestie, this is the conversion-routines module for IBM1004 ✨ (it's a Perl thing, from the User Contributed Perl Documentation corner of the manual-page universe, IBM1004(3) if you're keeping receipts 🧾)


πŸ¦‹ SYNOPSIS πŸ¦‹

This module is internal to libintl.  Do not use directly!
Stop right there, bestie πŸ›‘ β€” this module is internal to libintl. Like, do not use it directly. No cap. It's giving backstage-pass-only energy πŸ™ˆ

🌸 DESCRIPTION 🌸

Okay so here's the tea β˜•: this module is generated β€” like, nobody hand-wrote it, it just exists β€” and what it's carrying is the conversion tables and routines for IBM1004. That's it. That's the whole vibe. πŸ’…


πŸŽ€ COMMENTS πŸŽ€

The following comments have been extracted from the original charmap πŸ‘‡ (yes, it's literally called a charmap, we love a lowercase icon):

version: 1.0
 source: CEN/TC304 N283, 1994-02-04
alias CP1004
alias OS2LATIN1

So we got version: 1.0, we got a source of CEN/TC304 N283, 1994-02-04 (very vintage, very archival πŸ—‚οΈ), and two aliases: CP1004 and OS2LATIN1.

⚠️ Heads up though: please note that the aliases listed above are not necessarily valid! Like, don't come for me if OS2LATIN1 doesn't hit the way you expected πŸ™ˆ The manpage said it, not me.

πŸ”₯ CHARACTER TABLE πŸ”₯

The following table is sorted in the same order as the original charmap β€” okay so it's not alphabetical, it's charmap-order, respect the source bestie 🫢

All character codes are in hexadecimal πŸ”’ (base 16 girlies rise).

And important: please read 'ISO-10646' as 'ISO-10646-UCS4' β€” like, when you see the short name, mentally expand it, iykyk πŸ’…βœ¨


<(table incoming β€” this is part 1, stay tuned bestie πŸ“)>

so the table is long long, and honestly? iconic. we're gonna chunk it so your eyes don't fall out. everything below is the raw mapping β€” local byte on the left, ISO-10646 / Unicode code point in the middle, official name on the right. read it like a group chat of characters πŸ’…

first up, the control characters β€” the OGs, bytes 00 through 1F, all the ones that don't look like anything but run the whole show:

        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 |  00000004 | END OF TRANSMISSION (EOT)
           05 |  00000005 | ENQUIRY (ENQ)
           06 |  00000006 | ACKNOWLEDGE (ACK)
           07 |  00000007 | BELL (BEL)
           08 |  00000008 | BACKSPACE (BS)
           09 |  00000009 | CHARACTER TABULATION (HT)
           0A |  0000000A | LINE FEED (LF)
           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 |  00000014 | DEVICE CONTROL FOUR (DC4)
           15 |  00000015 | NEGATIVE ACKNOWLEDGE (NAK)
           16 |  00000016 | SYNCHRONOUS IDLE (SYN)
           17 |  00000017 | END OF TRANSMISSION BLOCK (ETB)
           18 |  00000018 | CANCEL (CAN)
           19 |  00000019 | END OF MEDIUM (EM)
           1A |  0000001A | SUBSTITUTE (SUB)
           1B |  0000001B | ESCAPE (ESC)
           1C |  0000001C | FILE SEPARATOR (IS4)
           1D |  0000001D | GROUP SEPARATOR (IS3)
           1E |  0000001E | RECORD SEPARATOR (IS2)
           1F |  0000001F | UNIT SEPARATOR (IS1)

ok real talk, note the double names on those last four β€” FILE SEPARATOR (IS4), GROUP SEPARATOR (IS3), RECORD SEPARATOR (IS2), UNIT SEPARATOR (IS1). same character, two aliases. slay πŸ’…


next: the printable ASCII era, 20 through 7F. this is your keyboard's main character arc ✨

           20 |  00000020 | SPACE
           21 |  00000021 | EXCLAMATION MARK
           22 |  00000022 | QUOTATION MARK
           23 |  00000023 | NUMBER SIGN
           24 |  00000024 | DOLLAR SIGN
           25 |  00000025 | PERCENT SIGN
           26 |  00000026 | AMPERSAND
           27 |  00000027 | APOSTROPHE
           28 |  00000028 | LEFT PARENTHESIS
           29 |  00000029 | RIGHT PARENTHESIS
           2A |  0000002A | ASTERISK
           2B |  0000002B | PLUS SIGN
           2C |  0000002C | COMMA
           2D |  0000002D | HYPHEN-MINUS
           2E |  0000002E | FULL STOP
           2F |  0000002F | SOLIDUS
           30 |  00000030 | DIGIT ZERO
           31 |  00000031 | DIGIT ONE
           32 |  00000032 | DIGIT TWO
           33 |  00000033 | DIGIT THREE
           34 |  00000034 | DIGIT FOUR
           35 |  00000035 | DIGIT FIVE
           36 |  00000036 | DIGIT SIX
           37 |  00000037 | DIGIT SEVEN
           38 |  00000038 | DIGIT EIGHT
           39 |  00000039 | DIGIT NINE
           3A |  0000003A | COLON
           3B |  0000003B | SEMICOLON
           3C |  0000003C | LESS-THAN SIGN
           3D |  0000003D | EQUALS SIGN
           3E |  0000003E | GREATER-THAN SIGN
           3F |  0000003F | QUESTION MARK
           40 |  00000040 | COMMERCIAL AT
           41 |  00000041 | LATIN CAPITAL LETTER A
           42 |  00000042 | LATIN CAPITAL LETTER B
           43 |  00000043 | LATIN CAPITAL LETTER C
           44 |  00000044 | LATIN CAPITAL LETTER D
           45 |  00000045 | LATIN CAPITAL LETTER E
           46 |  00000046 | LATIN CAPITAL LETTER F
           47 |  00000047 | LATIN CAPITAL LETTER G
           48 |  00000048 | LATIN CAPITAL LETTER H
           49 |  00000049 | LATIN CAPITAL LETTER I
           4A |  0000004A | LATIN CAPITAL LETTER J
           4B |  0000004B | LATIN CAPITAL LETTER K
           4C |  0000004C | LATIN CAPITAL LETTER L
           4D |  0000004D | LATIN CAPITAL LETTER M
           4E |  0000004E | LATIN CAPITAL LETTER N
           4F |  0000004F | LATIN CAPITAL LETTER O
           50 |  00000050 | LATIN CAPITAL LETTER P
           51 |  00000051 | LATIN CAPITAL LETTER Q
           52 |  00000052 | LATIN CAPITAL LETTER R
           53 |  00000053 | LATIN CAPITAL LETTER S
           54 |  00000054 | LATIN CAPITAL LETTER T
           55 |  00000055 | LATIN CAPITAL LETTER U
           56 |  00000056 | LATIN CAPITAL LETTER V
           57 |  00000057 | LATIN CAPITAL LETTER W
           58 |  00000058 | LATIN CAPITAL LETTER X
           59 |  00000059 | LATIN CAPITAL LETTER Y
           5A |  0000005A | LATIN CAPITAL LETTER Z
           5B |  0000005B | LEFT SQUARE BRACKET
           5C |  0000005C | REVERSE SOLIDUS
           5D |  0000005D | RIGHT SQUARE BRACKET
           5E |  0000005E | CIRCUMFLEX ACCENT
           5F |  0000005F | LOW LINE
           60 |  00000060 | GRAVE ACCENT
           61 |  00000061 | LATIN SMALL LETTER A
           62 |  00000062 | LATIN SMALL LETTER B
           63 |  00000063 | LATIN SMALL LETTER C
           64 |  00000064 | LATIN SMALL LETTER D
           65 |  00000065 | LATIN SMALL LETTER E
           66 |  00000066 | LATIN SMALL LETTER F
           67 |  00000067 | LATIN SMALL LETTER G
           68 |  00000068 | LATIN SMALL LETTER H
           69 |  00000069 | LATIN SMALL LETTER I
           6A |  0000006A | LATIN SMALL LETTER J
           6B |  0000006B | LATIN SMALL LETTER K
           6C |  0000006C | LATIN SMALL LETTER L
           6D |  0000006D | LATIN SMALL LETTER M
           6E |  0000006E | LATIN SMALL LETTER N
           6F |  0000006F | LATIN SMALL LETTER O
           70 |  00000070 | LATIN SMALL LETTER P
           71 |  00000071 | LATIN SMALL LETTER Q
           72 |  00000072 | LATIN SMALL LETTER R
           73 |  00000073 | LATIN SMALL LETTER S
           74 |  00000074 | LATIN SMALL LETTER T
           75 |  00000075 | LATIN SMALL LETTER U
           76 |  00000076 | LATIN SMALL LETTER V
           77 |  00000077 | LATIN SMALL LETTER W
           78 |  00000078 | LATIN SMALL LETTER X
           79 |  00000079 | LATIN SMALL LETTER Y
           7A |  0000007A | LATIN SMALL LETTER Z
           7B |  0000007B | LEFT CURLY BRACKET
           7C |  0000007C | VERTICAL LINE
           7D |  0000007D | RIGHT CURLY BRACKET
           7E |  0000007E | TILDE
           7F |  0000007F | DELETE (DEL)
bestie not DELETE (DEL) just sitting there at 7F being the last of the block 😭 the disrespect

ok now it gets ✨spicy✨ β€” we jump straight from 7F to 82, and the whole extended / typography zone opens up. curly quotes, daggers, ligatures: it's giving print shop energy πŸŽ€

           82 |  0000201A | SINGLE LOW-9 QUOTATION MARK
           84 |  0000201E | DOUBLE LOW-9 QUOTATION MARK
           85 |  00002026 | HORIZONTAL ELLIPSIS
           86 |  00002020 | DAGGER
           87 |  00002021 | DOUBLE DAGGER
           88 |  000002C6 | MODIFIER LETTER CIRCUMFLEX ACCENT
           89 |  00002030 | PER MILLE SIGN
           8A |  00000160 | LATIN CAPITAL LETTER S WITH CARON
           8B |  00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
           8C |  00000152 | LATIN CAPITAL LIGATURE OE
           91 |  00002018 | LEFT SINGLE QUOTATION MARK
           92 |  00002019 | RIGHT SINGLE QUOTATION MARK
           93 |  0000201C | LEFT DOUBLE QUOTATION MARK
           94 |  0000201D | RIGHT DOUBLE QUOTATION MARK
           95 |  00002022 | BULLET
           96 |  00002013 | EN DASH
           97 |  00002014 | EM DASH
           98 |  000002DC | SMALL TILDE
           99 |  00002122 | TRADE MARK SIGN
           9A |  00000161 | LATIN SMALL LETTER S WITH CARON
           9B |  0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
           9C |  00000153 | LATIN SMALL LIGATURE OE
           9F |  00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS

like?? BULLET, EN DASH, EM DASH, TRADE MARK SIGN β€” the typography girlies ATE πŸ”₯


and then A0 onward is the Latin-1 party bus: accents, symbols, fractions, math. very European vacation of it 🌸

           A0 |  000000A0 | NO-BREAK SPACE
           A1 |  000000A1 | INVERTED EXCLAMATION MARK
           A2 |  000000A2 | CENT SIGN
           A3 |  000000A3 | POUND SIGN
           A4 |  000000A4 | CURRENCY SIGN
           A5 |  000000A5 | YEN SIGN
           A6 |  000000A6 | BROKEN BAR
           A7 |  000000A7 | SECTION SIGN
           A8 |  000000A8 | DIAERESIS
           A9 |  000000A9 | COPYRIGHT SIGN
           AA |  000000AA | FEMININE ORDINAL INDICATOR
           AB |  000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
           AC |  000000AC | NOT SIGN
           AD |  000000AD | SOFT HYPHEN
           AE |  000000AE | REGISTERED SIGN
           AF |  000000AF | MACRON
           B0 |  000000B0 | DEGREE SIGN
           B1 |  000000B1 | PLUS-MINUS SIGN
           B2 |  000000B2 | SUPERSCRIPT TWO
           B3 |  000000B3 | SUPERSCRIPT THREE
           B4 |  000000B4 | ACUTE ACCENT
           B5 |  000000B5 | MICRO SIGN
           B6 |  000000B6 | PILCROW SIGN
           B7 |  000000B7 | MIDDLE DOT
           B8 |  000000B8 | CEDILLA
           B9 |  000000B9 | SUPERSCRIPT ONE
           BA |  000000BA | MASCULINE ORDINAL INDICATOR
           BB |  000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
           BC |  000000BC | VULGAR FRACTION ONE QUARTER
           BD |  000000BD | VULGAR FRACTION ONE HALF
           BE |  000000BE | VULGAR FRACTION THREE QUARTERS
           BF |  000000BF | INVERTED QUESTION MARK
           C0 |  000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
           C1 |  000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
           C2 |  000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
           C3 |  000000C3 | LATIN CAPITAL LETTER A WITH TILDE
           C4 |  000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
           C5 |  000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
           C6 |  000000C6 | LATIN CAPITAL LETTER AE
           C7 |  000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
           C8 |  000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
           C9 |  000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
           CA |  000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
           CB |  000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
           CC |  000000CC | LATIN CAPITAL LETTER I WITH GRAVE
           CD |  000000CD | LATIN CAPITAL LETTER I WITH ACUTE
           CE |  000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
           CF |  000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
           D0 |  000000D0 | LATIN CAPITAL LETTER ETH (Icelandic)
           D1 |  000000D1 | LATIN CAPITAL LETTER N WITH TILDE
           D2 |  000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
           D3 |  000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
           D4 |  000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
           D5 |  000000D5 | LATIN CAPITAL LETTER O WITH TILDE
           D6 |  000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
           D7 |  000000D7 | MULTIPLICATION SIGN
           D8 |  000000D8 | LATIN CAPITAL LETTER O WITH STROKE
           D9 |  000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
           DA |  000000DA | LATIN CAPITAL LETTER U WITH ACUTE
           DB |  000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
           DC |  000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
           DD |  000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
           DE |  000000DE | LATIN CAPITAL LETTER THORN (Icelandic)
           DF |  000000DF | LATIN SMALL LETTER SHARP S (German)
A0 is NO-BREAK SPACE β€” like a space but it refuses to break up with you πŸ’€ and yes DF is LATIN SMALL LETTER SHARP S (German), we stan a ß

and the lowercase half, E0 through F4, where the accents really start accenting πŸ¦‹

           E0 |  000000E0 | LATIN SMALL LETTER A WITH GRAVE
           E1 |  000000E1 | LATIN SMALL LETTER A WITH ACUTE
           E2 |  000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
           E3 |  000000E3 | LATIN SMALL LETTER A WITH TILDE
           E4 |  000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
           E5 |  000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
           E6 |  000000E6 | LATIN SMALL LETTER AE
           E7 |  000000E7 | LATIN SMALL LETTER C WITH CEDILLA
           E8 |  000000E8 | LATIN SMALL LETTER E WITH GRAVE
           E9 |  000000E9 | LATIN SMALL LETTER E WITH ACUTE
           EA |  000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
           EB |  000000EB | LATIN SMALL LETTER E WITH DIAERESIS
           EC |  000000EC | LATIN SMALL LETTER I WITH GRAVE
           ED |  000000ED | LATIN SMALL LETTER I WITH ACUTE
           EE |  000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
           EF |  000000EF | LATIN SMALL LETTER I WITH DIAERESIS
           F0 |  000000F0 | LATIN SMALL LETTER ETH (Icelandic)
           F1 |  000000F1 | LATIN SMALL LETTER N WITH TILDE
           F2 |  000000F2 | LATIN SMALL LETTER O WITH GRAVE
           F3 |  000000F3 | LATIN SMALL LETTER O WITH ACUTE
           F4 |  000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX

still going β€” the table literally does not stop, so neither do we 🫢

     F5 |  000000F5 | LATIN SMALL LETTER O WITH TILDE
     F6 |  000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
     F7 |  000000F7 | DIVISION SIGN
     F8 |  000000F8 | LATIN SMALL LETTER O WITH STROKE
     F9 |  000000F9 | LATIN SMALL LETTER U WITH GRAVE
     FA |  000000FA | LATIN SMALL LETTER U WITH ACUTE
     FB |  000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
     FC |  000000FC | LATIN SMALL LETTER U WITH DIAERESIS
     FD |  000000FD | LATIN SMALL LETTER Y WITH ACUTE
     FE |  000000FE | LATIN SMALL LETTER THORN (Icelandic)
     FF |  000000FF | LATIN SMALL LETTER Y WITH DIAERESIS

okay bestie, that's the last row of the table 🌈 β€” <pink>F5</pink> all the way through <pink>FF</pink>, byte by byte, and then we're done with the hex zone. Notice how <mint>FE</mint> is out here being Icelandic thorn, lowkey the main character of the Latin-1 block 🫢 and <mint>F7</mint> is just a division sign chilling with the letters like "yes I belong here" πŸ’€ anyway, table's closed, moving on!!


πŸ’– AUTHOR πŸ’–

so the whole thing is copyrighted, okay?? like, respect the paperwork:

  • 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!
ngl that double details!code for details! is literally how it's printed in the page β€” no cap, I'm not fixing it, that's the vibe it shipped with πŸ™ˆ (the source code genuinely is where the details live, fr fr).

πŸ¦‹ SEE ALSO πŸ¦‹

the friend group of related manpages, all iconic, all linked:


and that's a wrap on <rainbow>Locale:...:IBM1004(3)</rainbow>, bestie!! πŸŽ€ you just read the whole IBM1004 character map from the perl v5.42.0 docs β€” documented <pink>2025-01-22</pink>, brought to you by the perl people at <purple>perl v5.42.0</purple> πŸ’… go forth and encode responsibly, mwah πŸ’œβœ¨