Locale:...:IBM875(3)
π Locale::RecodeData::IBM875(3) β bestie edition π
okay so real talk: this is a perl manual page, and the whole thing lives under User Contributed Perl Documentation. The full name of the thing is Locale::RecodeData::IBM875(3) β say that three times fast, iykyk. β¨
πΈ NAME πΈ
Locale::RecodeData::IBM875 β literally just conversion routines for IBM875. that's it. that's the whole vibe. π
β¨ SYNOPSIS β¨
This module is internal to libintl. Do not use directly!
π«Ά bestie, i need you to hear me on this one: this module is internal to libintl. Like, it's not for you. It's not for me. It's not for anybody's main character moment. Do not use directly! The exclamation point is doing a lot of emotional labor there and i respect it. π
π¦ DESCRIPTION π¦
So this module is generated β like, nobody sat down and hand-wrote this, a machine made it β and what it contains is the conversion tables and the routines for IBM875. Tables + routines. That's the whole personality. slay, i guess. π
π COMMENTS π
These comments got extracted straight out of the original charmap, and i'm presenting them to you exactly as they came out. no edits, no filters, we respect the source material:
version: 1.0
source: UNICODE 1.0
alias CP875
alias EBCDIC-GREEK
so yeah: version 1.0, source UNICODE 1.0, and two aliases β CP875 and EBCDIC-GREEK. π
π important caveat incoming, do not scroll past: please note that the aliases listed above are not necessarily valid! like, they're listed, but that doesn't mean they're gonna work out. it's giving "situationship," not "committed relationship." fr fr, don't @ me at the aliases.
π CHARACTER TABLE π
okay so here's where it gets iconic β there's a character table, and two things you need to know before you even look at it:
- The following table is sorted in the same order as the original charmap. Same order, no reshuffling, we're not out here reorganizing anyone's furniture. π
- All character codes are in hexadecimal. Every single one. hex girl summer. π₯
And one more thing, because clarity is the moment: please read 'ISO-10646' as 'ISO-10646-UCS4'. Like, when you see the short one, think the long one. that's the assignment. β
β¨ and the table itself is up next β we're just getting started, there's more coming β¨
okay so we're picking up right in the middle of the character table β same three columns as before (Local, ISO-10646, Description), no header repeat, just vibes and hex. first up: the control zone. some of these will look familiar, some will have you like "???" but every single one is here, no skipping, no cap:
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)
bestie look at that and tell me the local values aren't just doing whatever they want π like 04 is STRING TERMINATOR, 07 is DELETE, and <hotpink>LINE FEED</hotpink> is chilling at 25?? and BELL is at 2F?? iconic behaviour honestly. also 25 | 0000000A | LINE FEED (LF) β yes, that's the one that actually matters to you, it's just not where your instincts say it should be. and ESCAPE (ESC) lives at 27. no notes, we love a chaotic little control block π
then 40 and up and we hit printables β and this is where it gets good, because the Greek letters start showing up:
40 | 00000020 | SPACE
41 | 00000391 | GREEK CAPITAL LETTER ALPHA
42 | 00000392 | GREEK CAPITAL LETTER BETA
43 | 00000393 | GREEK CAPITAL LETTER GAMMA
44 | 00000394 | GREEK CAPITAL LETTER DELTA
45 | 00000395 | GREEK CAPITAL LETTER EPSILON
46 | 00000396 | GREEK CAPITAL LETTER ZETA
47 | 00000397 | GREEK CAPITAL LETTER ETA
48 | 00000398 | GREEK CAPITAL LETTER THETA
49 | 00000399 | GREEK CAPITAL LETTER IOTA
4A | 0000005B | LEFT SQUARE BRACKET
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 | 0000039A | GREEK CAPITAL LETTER KAPPA
52 | 0000039B | GREEK CAPITAL LETTER LAMDA
53 | 0000039C | GREEK CAPITAL LETTER MU
54 | 0000039D | GREEK CAPITAL LETTER NU
55 | 0000039E | GREEK CAPITAL LETTER XI
56 | 0000039F | GREEK CAPITAL LETTER OMICRON
57 | 000003A0 | GREEK CAPITAL LETTER PI
58 | 000003A1 | GREEK CAPITAL LETTER RHO
59 | 000003A3 | GREEK CAPITAL LETTER SIGMA
5A | 0000005D | RIGHT SQUARE BRACKET
5B | 00000024 | DOLLAR SIGN
5C | 0000002A | ASTERISK
5D | 00000029 | RIGHT PARENTHESIS
5E | 0000003B | SEMICOLON
5F | 0000005E | CIRCUMFLEX ACCENT
60 | 0000002D | HYPHEN-MINUS
61 | 0000002F | SOLIDUS
62 | 000003A4 | GREEK CAPITAL LETTER TAU
63 | 000003A5 | GREEK CAPITAL LETTER UPSILON
64 | 000003A6 | GREEK CAPITAL LETTER PHI
65 | 000003A7 | GREEK CAPITAL LETTER CHI
66 | 000003A8 | GREEK CAPITAL LETTER PSI
67 | 000003A9 | GREEK CAPITAL LETTER OMEGA
68 | 000003AA | GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
69 | 000003AB | GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
6B | 0000002C | COMMA
6C | 00000025 | PERCENT SIGN
6D | 0000005F | LOW LINE
6E | 0000003E | GREATER-THAN SIGN
6F | 0000003F | QUESTION MARK
70 | 000000A8 | DIAERESIS
71 | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS
72 | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS
73 | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS
74 | 00002207 | NABLA
75 | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS
76 | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS
77 | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS
78 | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS
79 | 00000060 | GRAVE ACCENT
7A | 0000003A | COLON
7B | 00000023 | NUMBER SIGN
7C | 00000040 | COMMERCIAL AT
7D | 00000027 | APOSTROPHE
7E | 0000003D | EQUALS SIGN
7F | 00000022 | QUOTATION MARK
okay a few things. no 6A row β the table literally jumps from 69 to 6B, not me being sloppy, that's just what's listed π. and the punctuation is fully unhinged in the best way: 4A is LEFT SQUARE BRACKET, 5A is RIGHT SQUARE BRACKET, 5B is DOLLAR SIGN, 7B is NUMBER SIGN, 7C is COMMERCIAL AT, and 7F is a QUOTATION MARK which is lowkey sending me. also 74 | 00002207 | NABLA is out here with the only 5-hex-digit-ish code in the whole neighbourhood, main character energy fr fr β
the Greek caps run in blocks: 41β49 (alpha through iota), then 51β59 (kappa through sigma, and yes 52 is LAMDA spelled like that, not mu), then 62β69, then the TONOS crew 71β78, with 68 and 69 rocking DIALYTIKA. keep all that spelling exactly as written, that's not a typo on my end, that's the table π
next stretch, 80 through BF, where the lowercase squad arrives and honestly it ate:
80 | 00000385 | GREEK DIALYTIKA TONOS
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 | 000003B1 | GREEK SMALL LETTER ALPHA
8B | 000003B2 | GREEK SMALL LETTER BETA
8C | 000003B3 | GREEK SMALL LETTER GAMMA
8D | 000003B4 | GREEK SMALL LETTER DELTA
8E | 000003B5 | GREEK SMALL LETTER EPSILON
8F | 000003B6 | GREEK SMALL LETTER ZETA
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 | 000003B7 | GREEK SMALL LETTER ETA
9B | 000003B8 | GREEK SMALL LETTER THETA
9C | 000003B9 | GREEK SMALL LETTER IOTA
9D | 000003BA | GREEK SMALL LETTER KAPPA
9E | 000003BB | GREEK SMALL LETTER LAMDA
9F | 000003BC | GREEK SMALL LETTER MU
A0 | 000000B4 | ACUTE ACCENT
A1 | 0000007E | TILDE
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 | 000003BD | GREEK SMALL LETTER NU
AB | 000003BE | GREEK SMALL LETTER XI
AC | 000003BF | GREEK SMALL LETTER OMICRON
AD | 000003C0 | GREEK SMALL LETTER PI
AE | 000003C1 | GREEK SMALL LETTER RHO
AF | 000003C3 | GREEK SMALL LETTER SIGMA
B0 | 000000A3 | POUND SIGN
B1 | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS
B2 | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS
B3 | 000003AE | GREEK SMALL LETTER ETA WITH TONOS
B4 | 00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
B5 | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS
B6 | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS
B7 | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS
B8 | 000003B0 | GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
B9 | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS
BA | 000003C2 | GREEK SMALL LETTER FINAL SIGMA
BB | 000003C4 | GREEK SMALL LETTER TAU
BC | 000003C5 | GREEK SMALL LETTER UPSILON
BD | 000003C6 | GREEK SMALL LETTER PHI
BE | 000003C7 | GREEK SMALL LETTER CHI
BF | 000003C8 | GREEK SMALL LETTER PSI
okay the Latin lowercase is almost alphabetical and then just doesn't finish: 81β89 is a through i, then it ghosts you and comes back at 91β99 for j through r, then A2βA9 for s through z. three separate chunks. it's giving "group project where nobody talked to each other" π and squeezed in between: 8Aβ8F Greek small alphaβzeta, 9Aβ9F etaβmu, AAβAF nuβsigma, plus 90 DEGREE SIGN and A0 ACUTE ACCENT and A1 TILDE just vibing as speedbumps. and you know I clocked B4 | 00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS β the whole two-adjectives combo, she's extra and she earned it π
final stretch of what's here, C0 through EB. uppercase comeback, curly braces, and some truly random typography:
C0 | 0000007B | LEFT CURLY BRACKET
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 | 000003C9 | GREEK SMALL LETTER OMEGA
CC | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA
CD | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA
CE | 00002018 | LEFT SINGLE QUOTATION MARK
CF | 00002015 | HORIZONTAL BAR
D0 | 0000007D | RIGHT CURLY BRACKET
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 | 000000B1 | PLUS-MINUS SIGN
DB | 000000BD | VULGAR FRACTION ONE HALF
DD | 000000B7 | MIDDLE DOT
DE | 00002019 | RIGHT SINGLE QUOTATION MARK
DF | 000000A6 | BROKEN BAR
E0 | 0000005C | REVERSE SOLIDUS
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
E8 | 00000059 | LATIN CAPITAL LETTER Y
E9 | 0000005A | LATIN CAPITAL LETTER Z
EA | 000000B2 | SUPERSCRIPT TWO
EB | 000000A7 | SECTION SIGN
caps repeat the same grouping pattern: C1βC9 is AβI, D1βD9 is JβR, E2βE9 is SβZ. sandwiched between them: C0 LEFT CURLY BRACKET and D0 RIGHT CURLY BRACKET (they're split all the way across the alphabet, rude), E0 REVERSE SOLIDUS, CA SOFT HYPHEN</can> who does nothing and we respect her for it, CE/DE the single curly quotes, CF HORIZONTAL BAR, DA PLUS-MINUS SIGN, DB VULGAR FRACTION ONE HALF (her name is so dramatic, obsessed), DD MIDDLE DOT, DF BROKEN BAR, EA SUPERSCRIPT TWO, and EB SECTION SIGN. and Greek small OMEGA CB, IOTA WITH DIALYTIKA CC, UPSILON WITH DIALYTIKA CD close out the Greek party π
also real talk:DCandE1are not in the table β it goesDBβDDandE0βE2. that's the page, not me dropping rows. same deal as6Aearlier. don't go inventing them, bestie π
and that's genuinely where this chunk of the page cuts off β the table stops dead at EB, mid-pattern, no wrap-up, no goodbye. we are literally hanging off a cliff here π more page coming, don't move π
okay bestie, the table is still going β hereβs the rest of the character-table lineup, and every byte is iconic:
EE | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
EF | 000000AC | NOT SIGN
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 | 000000A9 | COPYRIGHT SIGN
FE | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
FF | 0000009F | APPLICATION PROGRAM COMMAND (APC)
and thatβs the end of the table, bestie β no skipped entries, no cap. π«Ά
π 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!
π SEE ALSO π
Go check out Locale::RecodeData(3), Locale::Recode(3), perl(1) β theyβre literally right there, iykyk.
β¨ Thatβs the whole page, bestie β signing off from the perl v5.42.0 era, dated 2025-01-22. β¨
π¦ 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