Locale:...:IBM851(3)
π Locale::RecodeData::IBM851(3) π
okay so like, hi bestie!! πΈ this is the manual page for Locale::...:IBM851(3) β it's part of the User Contributed Perl Documentation, which is literally where all the good stuff lives. come sit with me, we're gonna go through it together π«Ά
β¨ NAME β¨
Locale::RecodeData::IBM851 β conversion routines for IBM851 π
like, that's the whole vibe. it does the converting. for IBM851. iconic behavior honestly.
β¨ SYNOPSIS β¨
This module is internal to libintl. Do not use directly!
okay so this is the part where I have to be a little stern with you, bestie π β this module is internal to libintl. it is not for you. do not use it directly. I'm serious!! it's giving "staff only" door energy πͺβ¨
β¨ DESCRIPTION β¨
so what is it? this module is generated, and it contains the conversion tables and routines for IBM851. that's it, that's the whole description π it's a generated little guy doing generated little things. we love a humble queen π
β¨ COMMENTS β¨
okay so the following comments have been extracted from the original charmap, and honestly? they're giving lore π¦
version: 1.0
source: IBM NLS RM Vol2 SE09-8002-01, March 1990
alias CP851
alias 851
like β version: 1.0, source: IBM NLS RM Vol2 SE09-8002-01, March 1990, alias CP851, alias 851. look at that vintage March 1990 energy, a literal elder π
β οΈ but bestie please note: the aliases listed above are not necessarily valid! so don't come for me if you tryCP851or851and it doesn't slay. it's giving "maybe, maybe not" π
β¨ CHARACTER TABLE β¨
the following table is sorted in the same order as the original charmap π no cap. and also!! all character codes are in hexadecimal π₯ so like, get your hex brain on.
one more thing β please read 'ISO-10646' as 'ISO-10646-UCS4'. yes literally, that's the note, I'm not making it up π it's a naming thing, iykyk.
β¨ part 1 done, more coming bestie β¨
okay bestie, buckle up β this next stretch is literally just the table doing its thing, so let's take it in bite-sized pieces so your eyes don't glaze over π
β¨ CHARACTER TABLE β¨ (cont'd)
first up: the control characters. the invisible ones. the ones that don't look like anything but are absolutely running the whole show behind the scenes π lowkey the main character energy of the whole table ngl:
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)
then 20 through 7F β this is the part where it's like, oh, these are just... the normal ones?? the letters and the punctuation and the vibes π it's giving "ASCII greatest hits":
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)
and now we get to the good part β everything from 80 up, where IBM851 starts throwing accented letters, Greek, little fractions, and oh my god the box drawing characters ππ¦ like yes give us the shading and the blocks and every possible corner of a box. this is the aesthetic section fr fr:
80 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
81 | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
82 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
83 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
84 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
85 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
86 | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS
87 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
88 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
89 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
8A | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
8B | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
8C | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
8D | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS
8E | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
8F | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS
90 | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS
92 | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS
93 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
94 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
95 | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS
96 | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
97 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
98 | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS
99 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
9A | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
9B | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS
9C | 000000A3 | POUND SIGN
9D | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS
9E | 000003AE | GREEK SMALL LETTER ETA WITH TONOS
9F | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS
A0 | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA
A1 | 00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
A2 | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS
A3 | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS
A4 | 00000391 | GREEK CAPITAL LETTER ALPHA
A5 | 00000392 | GREEK CAPITAL LETTER BETA
A6 | 00000393 | GREEK CAPITAL LETTER GAMMA
A7 | 00000394 | GREEK CAPITAL LETTER DELTA
A8 | 00000395 | GREEK CAPITAL LETTER EPSILON
A9 | 00000396 | GREEK CAPITAL LETTER ZETA
AA | 00000397 | GREEK CAPITAL LETTER ETA
AB | 000000BD | VULGAR FRACTION ONE HALF
AC | 00000398 | GREEK CAPITAL LETTER THETA
AD | 00000399 | GREEK CAPITAL LETTER IOTA
AE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AF | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
B0 | 00002591 | LIGHT SHADE
B1 | 00002592 | MEDIUM SHADE
B2 | 00002593 | DARK SHADE
B3 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
B4 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
B5 | 0000039A | GREEK CAPITAL LETTER KAPPA
B6 | 0000039B | GREEK CAPITAL LETTER LAMDA
B7 | 0000039D | GREEK CAPITAL LETTER NU
B8 | 0000039C | GREEK CAPITAL LETTER MU
B9 | 00002563 | BOX DRAWINGS DOUBLE VERTICAL AND LEFT
BA | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
BB | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
BC | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
BD | 0000039E | GREEK CAPITAL LETTER XI
BE | 0000039F | GREEK CAPITAL LETTER OMICRON
BF | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
C0 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
C1 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
C2 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
C3 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
C4 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
C5 | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
C6 | 000003A0 | GREEK CAPITAL LETTER PI
C7 | 000003A1 | GREEK CAPITAL LETTER RHO
C8 | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
C9 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
CA | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
CB | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
CC | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
CD | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
CE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
CF | 000003A3 | GREEK CAPITAL LETTER SIGMA
D0 | 000003A4 | GREEK CAPITAL LETTER TAU
D1 | 000003A5 | GREEK CAPITAL LETTER UPSILON
D2 | 000003A6 | GREEK CAPITAL LETTER PHI
D3 | 000003A7 | GREEK CAPITAL LETTER CHI
D4 | 000003A8 | GREEK CAPITAL LETTER PSI
D5 | 000003A9 | GREEK CAPITAL LETTER OMEGA
D6 | 000003B1 | GREEK SMALL LETTER ALPHA
D7 | 000003B2 | GREEK SMALL LETTER BETA
D8 | 000003B3 | GREEK SMALL LETTER GAMMA
D9 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
DA | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
DB | 00002588 | FULL BLOCK
DC | 00002584 | LOWER HALF BLOCK
DD | 000003B4 | GREEK SMALL LETTER DELTA
DE | 000003B5 | GREEK SMALL LETTER EPSILON
DF | 00002580 | UPPER HALF BLOCK
E0 | 000003B6 | GREEK SMALL LETTER ZETA
E1 | 000003B7 | GREEK SMALL LETTER ETA
E2 | 000003B8 | GREEK SMALL LETTER THETA
E3 | 000003B9 | GREEK SMALL LETTER IOTA
E4 | 000003BA | GREEK SMALL LETTER KAPPA
E5 | 000003BB | GREEK SMALL LETTER LAMDA
ok and one tiny heads-up π«Ά did you clock that the table hops straight from90to92? yeah. that's just what it does. don't come for me, I'm reporting it exactly how it is β no91in sight, no cap π
and that's where this chunk of the table lands β the box drawing saga is still going, so like... keep scrolling bestie, we're not done π§
E6 | 000003BC | GREEK SMALL LETTER MU
E7 | 000003BD | GREEK SMALL LETTER NU
E8 | 000003BE | GREEK SMALL LETTER XI
E9 | 000003BF | GREEK SMALL LETTER OMICRON
EA | 000003C0 | GREEK SMALL LETTER PI
EB | 000003C1 | GREEK SMALL LETTER RHO
EC | 000003C3 | GREEK SMALL LETTER SIGMA
ED | 000003C2 | GREEK SMALL LETTER FINAL SIGMA
EE | 000003C4 | GREEK SMALL LETTER TAU
EF | 000000B4 | ACUTE ACCENT
F0 | 000000AD | SOFT HYPHEN
F1 | 000000B1 | PLUS-MINUS SIGN
F2 | 000003C5 | GREEK SMALL LETTER UPSILON
F3 | 000003C6 | GREEK SMALL LETTER PHI
F4 | 000003C7 | GREEK SMALL LETTER CHI
F5 | 000000A7 | SECTION SIGN
F6 | 000003C8 | GREEK SMALL LETTER PSI
F7 | 000002DB | OGONEK
F8 | 000000B0 | DEGREE SIGN
F9 | 000000A8 | DIAERESIS
FA | 000003C9 | GREEK SMALL LETTER OMEGA
FB | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA
FC | 000003B0 | GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
FD | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS
FE | 000025A0 | BLACK SQUARE
FF | 000000A0 | NO-BREAK SPACE
and that's the whole rest of the table bestie π β <pink>E6</pink> all the way to <pink>FF</pink>, no skips, no gaps, we ate. Notice how EC is GREEK SMALL LETTER SIGMA but ED is GREEK SMALL LETTER FINAL SIGMA? Yeah, the byte order there is lowkey not alphabetical and that's just how it is β don't come for me, I didn't build the codepage π. Also FE is a literal BLACK SQUARE and FF is NO-BREAK SPACE, which is the most unserious ending to a character table ever but okay, we move. π«Ά
β¨ 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!
Yeah, that doubled-up <purple>details!code for details!</purple> is literally in the original β iconic typo behavior, we keep it exactly as-is because we do not edit the source of truth, periodt. π
π SEE ALSO π
Locale::RecodeData(3)β the data side of the operation, go look πLocale::Recode(3)β the actual recoding bestie, the main character frperl(1)β you know her, you love her, the mothership πͺ
so yeah, that's the whole page! go forth and convert your bytes, you absolute icon πβ¨
perl v5.42.0 Β· 2025-01-22 β that's the version and the date this page was born, and that's the vibe check. 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