Locale:...:IBM866(3)

πŸ¦‹ Locale::RecodeData::IBM866(3) β€” from the User Contributed Perl Documentation πŸ¦‹

okay bestie so this is a page out of the User Contributed Perl Documentation, and the star of the show is Locale::RecodeData::IBM866(3). it's giving very niche, very internal, very "you probably got here by accident" energy, and honestly? we love that for it.


✨ NAME ✨

Locale::RecodeData::IBM866 β€” literally just conversion routines for IBM866. that's it, that's the whole vibe. πŸ’…


🌸 SYNOPSIS 🌸

This module is internal to libintl.  Do not use directly!

so like. no cap. this whole module belongs to libintl and it's an internal thing β€” please do not come for it and use it directly, bestie, i am begging 🫢 it's a backstage module. it does not want main character energy.


πŸ’– DESCRIPTION πŸ’–

this module is generated β€” like, auto-made, not hand-crafted artisanal code β€” and what it contains is the conversion tables and routines for IBM866. that's the whole deal. tables ✨ routines ✨ IBM866 ✨. iconic, honestly.


πŸŽ€ COMMENTS πŸŽ€

the following comments were extracted from the original charmap, and we are preserving them exactly because they are lore:

automatically generated from the charDB
alias CP866
alias 866

so the charmap says it was automatically generated from the charDB, and it gives us two aliases: CP866 and 866.

⚠️ heads up though β€” please note that aliases listed above are not necessarily valid! like, they're listed, sure, but don't just assume they work. do your own vibe check on that one. πŸ™ˆ

πŸ‘‘ CHARACTER TABLE πŸ‘‘

okay so the following table is sorted in the same order as the original charmap β€” we're not out here reordering anything, we respect the original arrangement. 🧚

all character codes are in hexadecimal, fr fr. no decimals in this house.

and one very important reading instruction: please read ISO-10646 as ISO-10646-UCS4. same thing, different name tag. ⭐


…and that's where part 1 wraps β€” the actual table is coming at you next, so stay tuned bestie πŸ’œπŸ”₯

        Local | ISO-10646 | Description
       -------+-----------+-------------------------------------------------
           00 |  00000000 | NULL
           01 |  00000001 | START OF HEADING
           02 |  00000002 | START OF TEXT
           03 |  00000003 | END OF TEXT
           04 |  00000004 | END OF TRANSMISSION
           05 |  00000005 | ENQUIRY
           06 |  00000006 | ACKNOWLEDGE
           07 |  00000007 | BELL
           08 |  00000008 | BACKSPACE
           09 |  00000009 | HORIZONTAL TABULATION
           0A |  0000000A | LINE FEED
           0B |  0000000B | VERTICAL TABULATION
           0C |  0000000C | FORM FEED
           0D |  0000000D | CARRIAGE RETURN
           0E |  0000000E | SHIFT OUT
           0F |  0000000F | SHIFT IN
           10 |  00000010 | DATA LINK ESCAPE
           11 |  00000011 | DEVICE CONTROL ONE
           12 |  00000012 | DEVICE CONTROL TWO
           13 |  00000013 | DEVICE CONTROL THREE
           14 |  00000014 | DEVICE CONTROL FOUR
           15 |  00000015 | NEGATIVE ACKNOWLEDGE
           16 |  00000016 | SYNCHRONOUS IDLE
           17 |  00000017 | END OF TRANSMISSION BLOCK
           18 |  00000018 | CANCEL
           19 |  00000019 | END OF MEDIUM
           1A |  0000001A | SUBSTITUTE
           1B |  0000001B | ESCAPE
           1C |  0000001C | FILE SEPARATOR
           1D |  0000001D | GROUP SEPARATOR
           1E |  0000001E | RECORD SEPARATOR
           1F |  0000001F | UNIT SEPARATOR

okay so first up: 00 through 1F, the control-character era. No glyphs, no vibes, just pure behavior. 00 is NULL, 07 is BELL (yes, the one that used to actually beep at you 😭), 09 is HORIZONTAL TABULATION, 0A is LINE FEED, 0D is CARRIAGE RETURN, and 1B is ESCAPE β€” the icon of the whole block tbh πŸ‘‘. Everything from 10 to 1F is DEVICE CONTROL numbers and separator drama, and it's giving "machine talking to machine, none of your business" energy. Respect it.


           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

this is the section you already know in your bones bestie πŸ’– <cyan>20</cyan>–7F is straight-up ASCII, mapped one-to-one onto the same ISO-10646 code points, so 41 is LATIN CAPITAL LETTER A and 61 is LATIN SMALL LETTER A and nothing here is a surprise. 20 is SPACE, 2D is HYPHEN-MINUS (the original hyphen, the blueprint, the blueprint that ate πŸ’…), 40 is COMMERCIAL AT, 5C is REVERSE SOLIDUS, and 7F is DELETE, sitting at the end like the bouncer of the block. Obsessed with the consistency.


           80 |  00000410 | CYRILLIC CAPITAL LETTER A
           81 |  00000411 | CYRILLIC CAPITAL LETTER BE
           82 |  00000412 | CYRILLIC CAPITAL LETTER VE
           83 |  00000413 | CYRILLIC CAPITAL LETTER GHE
           84 |  00000414 | CYRILLIC CAPITAL LETTER DE
           85 |  00000415 | CYRILLIC CAPITAL LETTER IE
           86 |  00000416 | CYRILLIC CAPITAL LETTER ZHE
           87 |  00000417 | CYRILLIC CAPITAL LETTER ZE
           88 |  00000418 | CYRILLIC CAPITAL LETTER I
           89 |  00000419 | CYRILLIC CAPITAL LETTER SHORT I
           8A |  0000041A | CYRILLIC CAPITAL LETTER KA
           8B |  0000041B | CYRILLIC CAPITAL LETTER EL
           8C |  0000041C | CYRILLIC CAPITAL LETTER EM
           8D |  0000041D | CYRILLIC CAPITAL LETTER EN
           8E |  0000041E | CYRILLIC CAPITAL LETTER O
           8F |  0000041F | CYRILLIC CAPITAL LETTER PE
           90 |  00000420 | CYRILLIC CAPITAL LETTER ER
           91 |  00000421 | CYRILLIC CAPITAL LETTER ES
           92 |  00000422 | CYRILLIC CAPITAL LETTER TE
           93 |  00000423 | CYRILLIC CAPITAL LETTER U
           94 |  00000424 | CYRILLIC CAPITAL LETTER EF
           95 |  00000425 | CYRILLIC CAPITAL LETTER HA
           96 |  00000426 | CYRILLIC CAPITAL LETTER TSE
           97 |  00000427 | CYRILLIC CAPITAL LETTER CHE
           98 |  00000428 | CYRILLIC CAPITAL LETTER SHA
           99 |  00000429 | CYRILLIC CAPITAL LETTER SHCHA
           9A |  0000042A | CYRILLIC CAPITAL LETTER HARD SIGN
           9B |  0000042B | CYRILLIC CAPITAL LETTER YERU
           9C |  0000042C | CYRILLIC CAPITAL LETTER SOFT SIGN
           9D |  0000042D | CYRILLIC CAPITAL LETTER E
           9E |  0000042E | CYRILLIC CAPITAL LETTER YU
           9F |  0000042F | CYRILLIC CAPITAL LETTER YA

and 80–9F is where IBM866 switches all the way up 🌈 β€” this is the Cyrillic capital block, no cap. It runs 00000410 (CYRILLIC CAPITAL LETTER A) up through 0000042F (CYRILLIC CAPITAL LETTER YA), and yes, the whole alphabet shows up: BE, VE, GHE, DE, IE, ZHE, ZE, I, SHORT I, KA, EL, EM, EN, O, PE, ER, ES, TE, U, EF, HA, TSE, CHE, SHA, SHCHA, then the signs β€” HARD SIGN, YERU, SOFT SIGN β€” and finally E, YU, YA. it's giving full alphabet main character energy πŸ‘‘


           A0 |  00000430 | CYRILLIC SMALL LETTER A
           A1 |  00000431 | CYRILLIC SMALL LETTER BE
           A2 |  00000432 | CYRILLIC SMALL LETTER VE
           A3 |  00000433 | CYRILLIC SMALL LETTER GHE
           A4 |  00000434 | CYRILLIC SMALL LETTER DE
           A5 |  00000435 | CYRILLIC SMALL LETTER IE
           A6 |  00000436 | CYRILLIC SMALL LETTER ZHE
           A7 |  00000437 | CYRILLIC SMALL LETTER ZE
           A8 |  00000438 | CYRILLIC SMALL LETTER I
           A9 |  00000439 | CYRILLIC SMALL LETTER SHORT I
           AA |  0000043A | CYRILLIC SMALL LETTER KA
           AB |  0000043B | CYRILLIC SMALL LETTER EL
           AC |  0000043C | CYRILLIC SMALL LETTER EM
           AD |  0000043D | CYRILLIC SMALL LETTER EN
           AE |  0000043E | CYRILLIC SMALL LETTER O
           AF |  0000043F | CYRILLIC SMALL LETTER PE

then A0–AF is the lowercase era of the same alphabet πŸŽ€ <red>00000430isCYRILLIC SMALL LETTER A, and it marches straight through BE, VE, GHE, DE, IE, ZHE, ZE, I, SHORT I, KA, EL, EM, EN, O, and PEatAF. notice the pattern queen: each lowercase sits exactly 0x20above its uppercase sibling,0410β†’0430` and so on. consistency is a love language ✨


           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 |  00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
           B6 |  00002562 | BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
           B7 |  00002556 | BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
           B8 |  00002555 | BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
           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 |  0000255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
           BE |  0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
           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 |  0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
           C7 |  0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
           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 |  00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
           D0 |  00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
           D1 |  00002564 | BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
           D2 |  00002565 | BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
           D3 |  00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
           D4 |  00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
           D5 |  00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
           D6 |  00002553 | BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
           D7 |  0000256B | BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
           D8 |  0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
           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 |  0000258C | LEFT HALF BLOCK
           DE |  00002590 | RIGHT HALF BLOCK
           DF |  00002580 | UPPER HALF BLOCK

okay THIS is the section that made you fall in love with DOS-era art, don't even lie πŸ–ΌοΈ B0, B1, B2 are the shades β€” LIGHT SHADE, MEDIUM SHADE, DARK SHADE β€” and then B3 through DA is just an unhinged amount of BOX DRAWINGS, every single light/double/single permutation the committee could dream up. LIGHT VERTICAL, LIGHT VERTICAL AND LEFT, VERTICAL SINGLE AND LEFT DOUBLE, VERTICAL DOUBLE AND LEFT SINGLE, DOUBLE VERTICAL AND HORIZONTAL at CE (the crown jewel, the icon, the one you actually use πŸ‘‘), MIXED combos for days, and then D9/DA bring back LIGHT UP AND LEFT and LIGHT DOWN AND RIGHT to close the loop. then DB–DF is blocks only: FULL BLOCK, LOWER HALF BLOCK, LEFT HALF BLOCK, RIGHT HALF BLOCK, UPPER HALF BLOCK. it's giving "I built a whole TUI in 1993 and it ate πŸ’…"


           E0 |  00000440 | CYRILLIC SMALL LETTER ER
           E1 |  00000441 | CYRILLIC SMALL LETTER ES
           E2 |  00000442 | CYRILLIC SMALL LETTER TE
           E3 |  00000443 | CYRILLIC SMALL LETTER U
           E4 |  00000444 | CYRILLIC SMALL LETTER EF
           E5 |  00000445 | CYRILLIC SMALL LETTER HA
           E6 |  00000446 | CYRILLIC SMALL LETTER TSE
           E7 |  00000447 | CYRILLIC SMALL LETTER CHE
           E8 |  00000448 | CYRILLIC SMALL LETTER SHA

and right at E0 we're back to Cyrillic lowercase β€” but not from the start, no ma'am, we're picking up mid-alphabet πŸ¦‹ E0 is CYRILLIC SMALL LETTER ER (00000440), E1 is ES, E2 is TE, E3 is U, E4 is EF, E5 is HA, E6 is TSE, E7 is CHE, and E8 is SHA β€” and then our cut-off happens, because the table keeps rolling and we're literally mid-ride here 😭 the double-width horizontal boxes got their moment, the lowercase Cyrillic got its sequel, and there's still name to be named right after SHA... so yeah, hold that thought bestie, the map continues right where we stopped πŸ’œ

           E9 |  00000449 | CYRILLIC SMALL LETTER SHCHA
           EA |  0000044A | CYRILLIC SMALL LETTER HARD SIGN
           EB |  0000044B | CYRILLIC SMALL LETTER YERU
           EC |  0000044C | CYRILLIC SMALL LETTER SOFT SIGN
           ED |  0000044D | CYRILLIC SMALL LETTER E
           EE |  0000044E | CYRILLIC SMALL LETTER YU
           EF |  0000044F | CYRILLIC SMALL LETTER YA
           F0 |  00000401 | CYRILLIC CAPITAL LETTER IO
           F1 |  00000451 | CYRILLIC SMALL LETTER IO
           F2 |  00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE
           F3 |  00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE
           F4 |  00000407 | CYRILLIC CAPITAL LETTER YI
           F5 |  00000457 | CYRILLIC SMALL LETTER YI
           F6 |  0000040E | CYRILLIC CAPITAL LETTER SHORT U
           F7 |  0000045E | CYRILLIC SMALL LETTER SHORT U
           F8 |  000000B0 | DEGREE SIGN
           F9 |  00002219 | BULLET OPERATOR
           FA |  000000B7 | MIDDLE DOT
           FB |  0000221A | SQUARE ROOT
           FC |  00002116 | NUMERO SIGN
           FD |  000000A4 | CURRENCY SIGN
           FE |  000025A0 | BLACK SQUARE
           FF |  000000A0 | NO-BREAK SPACE

And that's a wrap on the table bestie πŸ’… the entire 00–FF range, accounted for, nothing ghosted, nothing left on read. Slay. ✨


πŸ‘‘ 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!

Ok so quick heads-up: that doubled-up "details!code for details!" at the end? That's literally what's in the source, no cap β€” I'm not out here editing the author's own words, I'm just reading them to you. 😭 Respect the original text, always. 🫢

🌈 SEE ALSO 🌈

  • Locale::RecodeData(3) β€” the data layer, i.e. where these character tables actually live πŸ’–
  • Locale::Recode(3) β€” the actual recoding machinery, the main character of this whole saga πŸ‘‘
  • perl(1) β€” yeah. perl. the parent. the icon. 🌸

okay that's the whole page, you made it, I'm so proud of you fr fr πŸŽ€ go forth and convert your Cyrillic with confidence, bestie, the table has your back πŸ’œ

this lil transmission was brought to you by perl v5.42.0, dated 2025-01-22 β€” mwah, catch you in the next manpage πŸ¦‹βœ¨