Locale:...:CP1253(3)
π¦ Locale::RecodeData::CP1253(3) β ok bestie, let's talk CP1253
So this is a page from the User Contributed Perl Documentation section, and the star of the show is Locale::RecodeData::CP1253. Say hi π
β¨ NAME β¨
Locale::RecodeData::CP1253 β literally just conversion routines for CP1253. That's the whole vibe. π
π SYNOPSIS π
Okay so before you get any ideas β this module is internal to libintl. Do not use it directly! I'm serious, bestie, it's not for you, it's for the machinery. π«Ά
πΈ DESCRIPTION πΈ
This module is generated (not hand-written, so don't come for its handwriting) and it contains the conversion tables and routines for CP1253. That's it, that's the job. β¨
π COMMENTS π
These comments got extracted from the original charmap, and I'm presenting them to you unedited because I respect the source material:
version: 1.0
repertoiremap: mnemonic,ds
source: UNICODE 1.0
alias MS-GREEK
β οΈ Please note that aliases listed above are not necessarily valid! Like, they're listed, sure, but that doesn't mean they work. Don't @ me. π
π₯ CHARACTER TABLE π₯
Okay so the table below is sorted in the same order as the original charmap. All character codes are in hexadecimal, no cap. And when you see 'ISO-10646', please read it as 'ISO-10646-UCS4' β that's the read, that's the assignment, iykyk. π
...[more coming, bestie β this page is long so hold tight] π
okay so here's the actual table and it is a whole meal π three columns, and they mean exactly what they look like:
Localβ the byte, written in hex (like41,C5,FE)ISO-10646β the code point it maps to, eight hex digitsDescriptionβ the official name of that character, i.e. what it's actually called
no cap, that's it. now the top of it, aka the invisible zone π
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)
the entire 00β1F run is invisible-vibe-ruiners only π NULL (NUL) at the very top, BELL (BEL) at 07 which is literally the OG notification, and then your separators stacking down FILE SEPARATOR (IS4), GROUP SEPARATOR (IS3), RECORD SEPARATOR (IS2) and UNIT SEPARATOR (IS1) at the bottom. you won't see any of these on screen but they are doing the most behind the scenes.
and then we hit the stuff you can actually see, the printable era β¨
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
SPACE at 20 starting us off π«Ά then the punctuation party, and then DIGIT ZERO through DIGIT NINE β and yes bestie the digits start at 30, that is not a typo, that's just hex being hex π
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
COMMERCIAL AT is the @ and it's giving main character energy, obviously π then the whole LATIN CAPITAL LETTER A β LATIN CAPITAL LETTER Z run, capped off with the brackets, REVERSE SOLIDUS at 5C, CIRCUMFLEX ACCENT and 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)
lowercase girlies takeover πΈ LATIN SMALL LETTER A all the way to LATIN SMALL LETTER Z, then the curly braces, VERTICAL LINE, TILDE, and DELETE (DEL) at 7F slamming the door on the low half of the table. iconic.
okay now 80 and up is where this encoding starts actually being itself π¦ and heads up: the table doesn't have a row for every byte up here. it literally just skips some β no 81, no 88, no 8A, no 8C/8D/8E/8F/90, no 98, no 9A. so don't come for me, I'm just reading the table π
80 | 000020AC | EURO SIGN
82 | 0000201A | SINGLE LOW-9 QUOTATION MARK
83 | 00000192 | LATIN SMALL LETTER F WITH HOOK
84 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
85 | 00002026 | HORIZONTAL ELLIPSIS
86 | 00002020 | DAGGER
87 | 00002021 | DOUBLE DAGGER
89 | 00002030 | PER MILLE SIGN
8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
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
99 | 00002122 | TRADE MARK SIGN
9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
EURO SIGN πΆ opening the high half, then all the typography glow-up goodies: the low-9 quotes, HORIZONTAL ELLIPSIS, DAGGER and DOUBLE DAGGER, PER MILLE SIGN, the pointing angle quotes, the curly single and double quotes, BULLET, EN DASH, EM DASH and the TRADE MARK SIGN. also LATIN SMALL LETTER F WITH HOOK is just vibing in there at 83 with a code point of 00000192, iykyk.
and then 9Cβ9F aren't in the table either, so we jump straight to A0 where the Greek of it all begins π¬π·β¨
A0 | 000000A0 | NO-BREAK SPACE
A1 | 00000385 | GREEK DIALYTIKA TONOS
A2 | 00000386 | GREEK CAPITAL LETTER ALPHA WITH TONOS
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
AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AC | 000000AC | NOT SIGN
AD | 000000AD | SOFT HYPHEN
AE | 000000AE | REGISTERED SIGN
AF | 00002015 | HORIZONTAL BAR
B0 | 000000B0 | DEGREE SIGN
B1 | 000000B1 | PLUS-MINUS SIGN
B2 | 000000B2 | SUPERSCRIPT TWO
B3 | 000000B3 | SUPERSCRIPT THREE
B4 | 00000384 | GREEK TONOS
B5 | 000000B5 | MICRO SIGN
B6 | 000000B6 | PILCROW SIGN
B7 | 000000B7 | MIDDLE DOT
B8 | 00000388 | GREEK CAPITAL LETTER EPSILON WITH TONOS
B9 | 00000389 | GREEK CAPITAL LETTER ETA WITH TONOS
BA | 0000038A | GREEK CAPITAL LETTER IOTA WITH TONOS
BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
BC | 0000038C | GREEK CAPITAL LETTER OMICRON WITH TONOS
BD | 000000BD | VULGAR FRACTION ONE HALF
BE | 0000038E | GREEK CAPITAL LETTER UPSILON WITH TONOS
BF | 0000038F | GREEK CAPITAL LETTER OMEGA WITH TONOS
(also no row for AA, did you clock that? it just isn't there π)
NO-BREAK SPACE leads the parade, then GREEK DIALYTIKA TONOS, GREEK CAPITAL LETTER ALPHA WITH TONOS β and it keeps interleaving the money signs (POUND SIGN, CURRENCY SIGN, YEN SIGN) with Greek capitals wearing tonos: epsilon, eta, iota, omicron, upsilon, omega. plus the little legend GREEK TONOS at B4 doing the accent work π
and VULGAR FRACTION ONE HALF at BD because why not, king.
and now the big Greek moment, capitals edition π
C0 | 00000390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
C1 | 00000391 | GREEK CAPITAL LETTER ALPHA
C2 | 00000392 | GREEK CAPITAL LETTER BETA
C3 | 00000393 | GREEK CAPITAL LETTER GAMMA
C4 | 00000394 | GREEK CAPITAL LETTER DELTA
C5 | 00000395 | GREEK CAPITAL LETTER EPSILON
C6 | 00000396 | GREEK CAPITAL LETTER ZETA
C7 | 00000397 | GREEK CAPITAL LETTER ETA
C8 | 00000398 | GREEK CAPITAL LETTER THETA
C9 | 00000399 | GREEK CAPITAL LETTER IOTA
CA | 0000039A | GREEK CAPITAL LETTER KAPPA
CB | 0000039B | GREEK CAPITAL LETTER LAMDA
CC | 0000039C | GREEK CAPITAL LETTER MU
CD | 0000039D | GREEK CAPITAL LETTER NU
CE | 0000039E | GREEK CAPITAL LETTER XI
CF | 0000039F | GREEK CAPITAL LETTER OMICRON
D0 | 000003A0 | GREEK CAPITAL LETTER PI
D1 | 000003A1 | GREEK CAPITAL LETTER RHO
D3 | 000003A3 | GREEK CAPITAL LETTER SIGMA
D4 | 000003A4 | GREEK CAPITAL LETTER TAU
D5 | 000003A5 | GREEK CAPITAL LETTER UPSILON
D6 | 000003A6 | GREEK CAPITAL LETTER PHI
D7 | 000003A7 | GREEK CAPITAL LETTER CHI
D8 | 000003A8 | GREEK CAPITAL LETTER PSI
D9 | 000003A9 | GREEK CAPITAL LETTER OMEGA
DA | 000003AA | GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
DB | 000003AB | GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
DC | 000003AC | GREEK SMALL LETTER ALPHA WITH TONOS
DD | 000003AD | GREEK SMALL LETTER EPSILON WITH TONOS
DE | 000003AE | GREEK SMALL LETTER ETA WITH TONOS
DF | 000003AF | GREEK SMALL LETTER IOTA WITH TONOS
notice C0 is a small letter with dialytika and tonos sitting right above all the capitals, and then C1 00000391 starts the alphaβomega run proper. GREEK CAPITAL LETTER LAMDA is spelled LAMDA in the table, don't come at me, I'm copying it exact β and there's no row for D2 β it goes RHO β SIGMA. the table said what it said π¦
final chunk, lowercase Greek + all the accents, and this is where she really ate π
E0 | 000003B0 | GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
E1 | 000003B1 | GREEK SMALL LETTER ALPHA
E2 | 000003B2 | GREEK SMALL LETTER BETA
E3 | 000003B3 | GREEK SMALL LETTER GAMMA
E4 | 000003B4 | GREEK SMALL LETTER DELTA
E5 | 000003B5 | GREEK SMALL LETTER EPSILON
E6 | 000003B6 | GREEK SMALL LETTER ZETA
E7 | 000003B7 | GREEK SMALL LETTER ETA
E8 | 000003B8 | GREEK SMALL LETTER THETA
E9 | 000003B9 | GREEK SMALL LETTER IOTA
EA | 000003BA | GREEK SMALL LETTER KAPPA
EB | 000003BB | GREEK SMALL LETTER LAMDA
EC | 000003BC | GREEK SMALL LETTER MU
ED | 000003BD | GREEK SMALL LETTER NU
EE | 000003BE | GREEK SMALL LETTER XI
EF | 000003BF | GREEK SMALL LETTER OMICRON
F0 | 000003C0 | GREEK SMALL LETTER PI
F1 | 000003C1 | GREEK SMALL LETTER RHO
F2 | 000003C2 | GREEK SMALL LETTER FINAL SIGMA
F3 | 000003C3 | GREEK SMALL LETTER SIGMA
F4 | 000003C4 | GREEK SMALL LETTER TAU
F5 | 000003C5 | GREEK SMALL LETTER UPSILON
F6 | 000003C6 | GREEK SMALL LETTER PHI
F7 | 000003C7 | GREEK SMALL LETTER CHI
F8 | 000003C8 | GREEK SMALL LETTER PSI
F9 | 000003C9 | GREEK SMALL LETTER OMEGA
FA | 000003CA | GREEK SMALL LETTER IOTA WITH DIALYTIKA
FB | 000003CB | GREEK SMALL LETTER UPSILON WITH DIALYTIKA
FC | 000003CC | GREEK SMALL LETTER OMICRON WITH TONOS
FD | 000003CD | GREEK SMALL LETTER UPSILON WITH TONOS
FE | 000003CE | GREEK SMALL LETTER OMEGA WITH TONOS
E0 is GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS β the longest name on the block and honestly she earned it π β then E1 000003B1 kicks off the lowercase alpha-through-omega run. and clock this: F2 is GREEK SMALL LETTER FINAL SIGMA while F3 is plain GREEK SMALL LETTER SIGMA. both of them. the table gives you options, periodt π
then the dialytika versions at FA and FB, and it closes out at FE with omicron, upsilon and omega all wearing tonos.
and that's the whole table, every last row of it π keep scrolling because there's more page after this bestie π
π AUTHOR π
Okay bestie, so the copyright tea: 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! β yes, that lil' duplication is literally in the original, so we're keeping it fr fr, no cap. π
π¦ SEE ALSO π¦
Locale::RecodeData(3)β the data side of the recoding operation, go look πLocale::Recode(3)β the actual recoding module, the main character β¨perl(1)β you know her, you love her, the icon herself πͺ
And that's a wrap on the whole page, bestie!! π Go forth and recode your CP1253 bytes with confidence. π
This lil' beauty is from perl v5.42.0, dated 2025-01-22 β the whole Locale:...:CP1253(3) situation, perlΓ© v5.42.0 flavour. Slay, stay hydrated, and remember: the vibe check is forever. ππ«Ά
π¦ 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