Locale:...:IBM869(3)
π Locale::RecodeData::IBM869 β like, the whole manual bestie πΈ
okay so before we even start: this is the Locale:...:IBM869(3) page from the User Contributed Perl Documentation section, and yes the title got a little chopped in the header, that's just how it renders. The actual module name is Locale::RecodeData::IBM869 and it's giving deep internals, so buckle up π
β¨ NAME β¨
Locale::RecodeData::IBM869 β conversion routines for IBM869. that's it, that's the whole name. short, sweet, iconic π
π¦ SYNOPSIS π¦
no code example here, because there isn't one, and honestly? rude of you to expect one. the synopsis is literally just this warning, so read it carefully:
This module is internal to libintl. Do not use directly!
like, fr fr, do not touch. it's not for you, it's for libintl's eyes only π this is the backstage pass module, not the main character.
π DESCRIPTION π
so what is this thing? it's a generated module β nobody hand-wrote this, a script birthed it β and it contains the conversion tables and routines for IBM869. that's the whole job. tables + routines, IBM869 edition, no notes β¨
π«Ά COMMENTS π«Ά
these are the comments that got extracted from the original charmap, preserved exactly, so here's the receipts π§Ύ:
version: 1.0
source: IBM Keyboard layouts and code pages, PN 07G4586 June 1991
alias CP869
alias 869
alias CP-GR
so we're on version 1.0, the source is IBM Keyboard layouts and code pages, PN 07G4586 June 1991 (very vintage, very retro, we love a 1991 moment πΎ), and the aliases are CP869, 869, and CP-GR.
β οΈ important vibes check: please note that aliases listed above are not necessarily valid! like, don't just assume they all work, okay? read the fine print bestie π
π CHARACTER TABLE π
here's where it gets juicy. the following table is sorted in the same order as the original charmap β no reshuffling, no "improving" it, we respect the source's choices π
and all character codes are in hexadecimal, so like 0x00-core, not decimal. don't come at me with base 10, that's not the vibe here π₯
also one tiny terminology note that matters: please read 'ISO-10646' as 'ISO-10646-UCS4'. same thing, longer name, more letters, more drama β
(and yes, the actual table itself is coming in the next part β this page is long, we're pacing ourselves π§)
okay so bestie, this right here is the moment the whole page was building to β the actual map of every byte π it's literally the whole alphabet plus a Greek situation plus an entire box-drawing art kit. no skipping, no "you get the idea" β we go byte by byte, and honestly? iconic of her.
first up, the classic section, 00 through 7F. this is the part every terminal on earth agrees on, the "hello world" of byte maps, the vanilla of it all. and yes the escapes and control codes are in here too β they don't look like much on screen but they run the whole show, periodt.
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)
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)
okay and now π₯ the part you actually came for β the high half. notice how the local column hops straight from 7F to 86? that's just what the table says, bestie, we don't editorialize, we report π
and honestly this section is so much. you got your accented Greek capitals up top, your curly lil quotation marks, the copyright sign because sure, then it fully pivots into an entire box-drawing construction kit (light and double, we're spoiled), some shade blocks for that gradient aesthetic, and then a full lowercase Greek run at the end. it's giving renaissance, it's giving DOS art class, it's giving everything. π
86 | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS
88 | 000000B7 | MIDDLE DOT
89 | 000000AC | NOT SIGN
8A | 000000A6 | BROKEN BAR
8B | 00002018 | LEFT SINGLE QUOTATION MARK
8C | 00002019 | RIGHT SINGLE QUOTATION MARK
8D | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS
8E | 00002015 | HORIZONTAL BAR
8F | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS
90 | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS
91 | 000003AA | GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
92 | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS
95 | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS
96 | 000003AB | GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
97 | 000000A9 | COPYRIGHT SIGN
98 | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS
99 | 000000B2 | SUPERSCRIPT TWO
9A | 000000B3 | SUPERSCRIPT THREE
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 | 0000039C | GREEK CAPITAL LETTER MU
B8 | 0000039D | GREEK CAPITAL LETTER NU
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
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 | 00000384 | GREEK TONOS
F0 | 000000AD | SOFT HYPHEN
F1 | 000000B1 | PLUS-MINUS SIGN
F2 | 000003C5 | GREEK SMALL LETTER UPSILON
a couple things i need you to clock, because they're cute and a little chaotic: EC and ED are out of Greek alphabetical order β sigma shows up before final sigma, which is exactly how it's written here, no notes. and F0 through F2 are just chilling at the end with a soft hyphen, a plus-minus, and one lone small upsilon like it got left at the bus stop π
anyway that's the full mapping, down to the very last row β every local byte, every ISO-10646 code point, every description, all of it, nothing skipped π«Ά and there's still more page to go, so don't go anywhere.
...and the home stretch of the table, bestie, don't scroll away on me π
F3β000003C6β GREEK SMALL LETTER PHIF4β000003C7β GREEK SMALL LETTER CHIF5β000000A7β SECTION SIGNF6β000003C8β GREEK SMALL LETTER PSIF7β00000385β GREEK DIALYTIKA TONOSF8β000000B0β DEGREE SIGNF9β000000A8β DIAERESISFAβ000003C9β GREEK SMALL LETTER OMEGAFBβ000003CBβ GREEK SMALL LETTER UPSILON WITH DIALYTIKAFCβ000003B0β GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOSFDβ000003CEβ GREEK SMALL LETTER OMEGA WITH TONOSFEβ000025A0β BLACK SQUAREFFβ000000A0β NO-BREAK SPACE
And that's the whole map, 00 through FF, every single slot accounted for. Iconic behaviour, honestly π
π«Ά 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!
Like β respect the author, they did all the actual work and we're just out here reading the docs π
π¦ SEE ALSO
Go read those if you want the full lore, iykyk πβ¨
aaaand that's a wrap on the whole page, bestie π ngl it was a lot of hex codes, but you ate it. This beauty is perl v5.42.0, dated 2025-01-22, straight from the User Contributed Perl Documentation vibes β go forth and recode your Greek characters responsibly ππΈ
π¦ 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