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 πŸ§šβ€β™€οΈ