Locale:...:CP1250(3)
π NAME π
Okay so, welcome to Locale::RecodeData::CP1250 β bestie, it's the conversion routines for CP1250. That's the whole vibe. π
(Also, for the record, this page lives under the User Contributed Perl Documentation umbrella, and its manpage handle is Locale:...:CP1250(3) β now you know, iykyk.)
β¨ SYNOPSIS β¨
So here's the thing:
This module is internal to libintl. Do not use directly!
Yeah. That's it. That's the synopsis. It's giving "don't talk to me, I'm internal." π«Ά
πΈ DESCRIPTION πΈ
This module is generated β like, not hand-written, it got built β and it contains the conversion tables and routines for <rainbow>CP1250</rainbow>. Tables! Routines! The whole lowercase-aesthetic package. π¦
π COMMENTS π
The following comments have been extracted from the original charmap, and honestly they're serving lore:
version: 1.0
repertoiremap: mnemonic,ds
source: UNICODE 1.0
alias MS-EE
β οΈ Heads up, bestie: please note that aliases listed above are not necessarily valid! So don't go running around using MS-EE like it's guaranteed, okay? It said what it said. π
π₯ CHARACTER TABLE π₯
The following table is sorted in the same order as the original charmap. Fr fr, same order, no reshuffling. π
All character codes are in hexadecimal β hex girlies rise π
And please read 'ISO-10646' as 'ISO-10646-UCS4'. Like, when you see the short one, think the long one. That's the assignment. β¨
(the table itself is loadingβ¦ more of this page is coming, don't go anywhere π)
okay bestie so we're mid-table and there is SO much here β the original splits it into the "local byte value" on the left, the ISO-10646 code point in the middle, and the name on the right. Same three columns, same order, no skipping. Buckle up π
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)
okay that whole 00β1F run is the classic hall-of-fame lineup β every name in there is a whole mood, honestly. NULL (NUL) walking so BEL (BEL) could run π
and then the table just blooms into the printable stuff, all the way through the alphabet, no skips, iykyk:
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)
lowkey obsessed with 7F being DELETE (DEL) β the way it just sits there at the end of the ASCII run like "and I oop" π
okay now we hit the actually-interesting part for CP1250, the 80β9F zone, and notice the vibe check: some locals are missing in the listing π
that's not me being lazy, that's the table being the table β gaps included, no cap:
80 | 000020AC | EURO SIGN
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
89 | 00002030 | PER MILLE SIGN
8A | 00000160 | LATIN CAPITAL LETTER S WITH CARON
8B | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
8C | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE
8D | 00000164 | LATIN CAPITAL LETTER T WITH CARON
8E | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
8F | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE
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
9A | 00000161 | LATIN SMALL LETTER S WITH CARON
9B | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
9C | 0000015B | LATIN SMALL LETTER S WITH ACUTE
9D | 00000165 | LATIN SMALL LETTER T WITH CARON
9E | 0000017E | LATIN SMALL LETTER Z WITH CARON
9F | 0000017A | LATIN SMALL LETTER Z WITH ACUTE
80 snagging EURO SIGN at 000020AC?? main character energy honestly π€ and yes 95 BULLET and 96 EN DASH and 97 EM DASH are all right there being iconic little punctuation girlies.
then A0 through BF, where CP1250 starts showing off its Central European range:
A0 | 000000A0 | NO-BREAK SPACE
A1 | 000002C7 | CARON (Mandarin Chinese third tone)
A2 | 000002D8 | BREVE
A3 | 00000141 | LATIN CAPITAL LETTER L WITH STROKE
A4 | 000000A4 | CURRENCY SIGN
A5 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK
A6 | 000000A6 | BROKEN BAR
A7 | 000000A7 | SECTION SIGN
A8 | 000000A8 | DIAERESIS
A9 | 000000A9 | COPYRIGHT SIGN
AA | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA
AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AC | 000000AC | NOT SIGN
AD | 000000AD | SOFT HYPHEN
AE | 000000AE | REGISTERED SIGN
AF | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE
B0 | 000000B0 | DEGREE SIGN
B1 | 000000B1 | PLUS-MINUS SIGN
B2 | 000002DB | OGONEK
B3 | 00000142 | LATIN SMALL LETTER L WITH STROKE
B4 | 000000B4 | ACUTE ACCENT
B5 | 000000B5 | MICRO SIGN
B6 | 000000B6 | PILCROW SIGN
B7 | 000000B7 | MIDDLE DOT
B8 | 000000B8 | CEDILLA
B9 | 00000105 | LATIN SMALL LETTER A WITH OGONEK
BA | 0000015F | LATIN SMALL LETTER S WITH CEDILLA
BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
BC | 0000013D | LATIN CAPITAL LETTER L WITH CARON
BD | 000002DD | DOUBLE ACUTE ACCENT
BE | 0000013E | LATIN SMALL LETTER L WITH CARON
BF | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE
not the parenthetical on A1 being (Mandarin Chinese third tone) β bestie that detail is doing SO much work and I respect it fr fr π«Ά
and now C0βDF, otherwise known as "every accented capital you've ever copy-pasted into a filename and immediately regretted":
C0 | 00000154 | LATIN CAPITAL LETTER R WITH ACUTE
C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
C3 | 00000102 | LATIN CAPITAL LETTER A WITH BREVE
C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
C5 | 00000139 | LATIN CAPITAL LETTER L WITH ACUTE
C6 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE
C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON
C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
CA | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK
CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
CC | 0000011A | LATIN CAPITAL LETTER E WITH CARON
CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
CF | 0000010E | LATIN CAPITAL LETTER D WITH CARON
D0 | 00000110 | LATIN CAPITAL LETTER D WITH STROKE
D1 | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE
D2 | 00000147 | LATIN CAPITAL LETTER N WITH CARON
D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
D5 | 00000150 | LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
D7 | 000000D7 | MULTIPLICATION SIGN
D8 | 00000158 | LATIN CAPITAL LETTER R WITH CARON
D9 | 0000016E | LATIN CAPITAL LETTER U WITH RING ABOVE
DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
DB | 00000170 | LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
DD | 000000DD | LATIN CAPITAL LETTER Y WITH ACUTE
DE | 00000162 | LATIN CAPITAL LETTER T WITH CEDILLA
DF | 000000DF | LATIN SMALL LETTER SHARP S (German)
DF being LATIN SMALL LETTER SHARP S (German) β the lowercase sharp s crashing the capital-letter party at the very last second, and the (German) note is a whole lil β¨ footnote era β¨ moment.
and we're rolling into the lowercase run now, E0 onwards, and we're gonna stop part 2 right at ED because the table keeps going (and so do we π):
E0 | 00000155 | LATIN SMALL LETTER R WITH ACUTE
E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
E3 | 00000103 | LATIN SMALL LETTER A WITH BREVE
E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
E5 | 0000013A | LATIN SMALL LETTER L WITH ACUTE
E6 | 00000107 | LATIN SMALL LETTER C WITH ACUTE
E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
E8 | 0000010D | LATIN SMALL LETTER C WITH CARON
E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
EA | 00000119 | LATIN SMALL LETTER E WITH OGONEK
EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
EC | 0000011B | LATIN SMALL LETTER E WITH CARON
ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
the way E0βED is just the C0βCD row wearing a lowercase outfit π
π literally the same shape, one hex digit over, and we're only halfway through the lowercase lore β hold that thought, bestie πΈ
...and here's the rest of the table, the last stretch, we're so close bestie π
EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
EF | 0000010F | LATIN SMALL LETTER D WITH CARON
F0 | 00000111 | LATIN SMALL LETTER D WITH STROKE
F1 | 00000144 | LATIN SMALL LETTER N WITH ACUTE
F2 | 00000148 | LATIN SMALL LETTER N WITH CARON
F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
F5 | 00000151 | LATIN SMALL LETTER O WITH DOUBLE ACUTE
F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
F7 | 000000F7 | DIVISION SIGN
F8 | 00000159 | LATIN SMALL LETTER R WITH CARON
F9 | 0000016F | LATIN SMALL LETTER U WITH RING ABOVE
FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
FB | 00000171 | LATIN SMALL LETTER U WITH DOUBLE ACUTE
FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
FD | 000000FD | LATIN SMALL LETTER Y WITH ACUTE
FE | 00000163 | LATIN SMALL LETTER T WITH CEDILLA
FF | 000002D9 | DOT ABOVE (Mandarin Chinese light tone)
okay the way CP1250 just ends on FF with DOT ABOVE (Mandarin Chinese light tone) β that's such a plot twist, like the last byte said "and also, Mandarin Chinese light tone, you're welcome" π literally main character energy for a codepage. and F7 staying a plain old DIVISION SIGN while everyone around it is out here with carons and double acutes? iconic. no notes. π
and that's the whole table!! π¦ you made it, bestie, the full 256-byte tour is complete, go drink some water π«Ά
π AUTHOR π
- Copyright (C) 2002-2017 Guido Flohr <http://www.guido-flohr.net/> (<mailto:guido.flohr@cantanea.com>), all rights reserved.
- and for anything else you might be curious about:
See the source code for details!code for details!
so yeah, the whole thing is Guido Flohr's, copyright runs 2002-2017, all rights reserved, and the manpage is very clear that you should go look at the source if you want the deep lore β¨ (and yes, it literally says details!code for details! β that's what's written, we're not fixing it, it's part of the vibe now π). Also there's a website and an email in there, both linked, both legit, both keeping the receipts. fr fr respect to the maintainer π«‘
π¦ SEE ALSO π¦
like, if you're not done hanging out with this module yet:
Locale::RecodeData(3)β the data-side of the operation, the whole supporting cast πLocale::Recode(3)β the actual recoding interface, the main character of this friend group πperl(1)β yes. perl. the mothership. the reason we're all here π
they're all right there, go read them, iykyk π
one last vibe check bestie: this was page three of three, the character table is fully delivered, nothing got skipped, every single byte accounted for. slay π β¨
anyway that's the page! brought to you by perl v5.42.0 and stamped 2025-01-22 β a little dated, still flawless, we don't judge ππ mwah, love u, go write some Perl π§ββοΈ
π¦ 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