Locale:...:KOI8_U(3)
okay bestie, welcome to the Locale:...:KOI8_U(3) page from the User Contributed Perl Documentation. The main character here is Locale::RecodeData::KOI8_U, and weβre getting into it π
π NAME π
Locale::RecodeData::KOI8_U β conversion routines for KOI8-U. Thatβs literally the name, periodt β¨
πΈ SYNOPSIS πΈ
This module is internal to libintl. Do not use directly!
No cap, bestie: it says do not use directly π Thatβs the whole synopsis vibe.
π¦ DESCRIPTION π¦
This module is generated, okay? It contains the conversion tables and routines for KOI8-U. Generated content, conversion tables, routines β all of it, mwah π
π COMMENTS π
The following comments have been extracted from the original charmap:
version: 1.1
source: RFC 2319
source: http://www.net.ua/KOI8-U/
Please note that aliases listed above are not necessarily valid! π
π CHARACTER TABLE π
The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'. β¨
Local | ISO-10646 | Description
-------+-----------+-------------------------------------------------
okay bestie, the moment we've all been waiting for β the actual byte-by-byte glow-up of KOI8_U. Three columns, no filler: the local byte, the ISO-10646 code point it maps to, and what that character actually is. Read it like a group chat roster: everybody's here, nobody's left out. π
π The control characters, a.k.a. the OGs (0x00β0x1F)
These are the ancient ones. They don't look like anything, they do things β beep, back up, feed a line. Respect them.
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)
not the IS4/IS3/IS2/IS1 suffixes lowkey confusing everyone β yes, the FILE/GROUP/RECORD/UNIT SEPARATORs carry those parenthesised aliases, and they're staying. Periodt.
πΈ The printable ASCII era (0x20β0x7E)
Space through tilde. Every keyboard you've ever touched lives here. This is the part of the table that ate and left no crumbs.
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)
shoutout to 7F for being the villain of the set: DELETE (DEL). Anyway β that's where vanilla ASCII gives up and KOI8_U starts doing the most.
π Box drawing era, activate (0x80β0x92)
Bestie. This is the part that makes KOI8_U iconic. Rows and columns and corners, all done with light strokes. It's giving "I made the whole terminal UI myself." π
80 | 00002500 | BOX DRAWINGS LIGHT HORIZONTAL
81 | 00002502 | BOX DRAWINGS LIGHT VERTICAL
82 | 0000250C | BOX DRAWINGS LIGHT DOWN AND RIGHT
83 | 00002510 | BOX DRAWINGS LIGHT DOWN AND LEFT
84 | 00002514 | BOX DRAWINGS LIGHT UP AND RIGHT
85 | 00002518 | BOX DRAWINGS LIGHT UP AND LEFT
86 | 0000251C | BOX DRAWINGS LIGHT VERTICAL AND RIGHT
87 | 00002524 | BOX DRAWINGS LIGHT VERTICAL AND LEFT
88 | 0000252C | BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
89 | 00002534 | BOX DRAWINGS LIGHT UP AND HORIZONTAL
8A | 0000253C | BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
Then the blocks and shadings come through β half blocks, full block, and the three shade levels, so you can absolutely render a gradient in a 1990s DOS box:
8B | 00002580 | UPPER HALF BLOCK
8C | 00002584 | LOWER HALF BLOCK
8D | 00002588 | FULL BLOCK
8E | 0000258C | LEFT HALF BLOCK
8F | 00002590 | RIGHT HALF BLOCK
90 | 00002591 | LIGHT SHADE
91 | 00002592 | MEDIUM SHADE
92 | 00002593 | DARK SHADE
π₯ The weird & wonderful row (0x93β0x9F)
Math symbols, a bullet, a non-breaking space, a degree sign, a superscript two, a middle dot, and a division sign. Truly a mixed bag but honestly? Every one of them served.
93 | 00002320 | TOP HALF INTEGRAL
94 | 000025A0 | BLACK SQUARE
95 | 00002219 | BULLET OPERATOR
96 | 0000221A | SQUARE ROOT
97 | 00002248 | ALMOST EQUAL TO
98 | 00002264 | LESS THAN OR EQUAL TO
99 | 00002265 | GREATER THAN OR EQUAL TO
9A | 000000A0 | NO-BREAK SPACE
9B | 00002321 | BOTTOM HALF INTEGRAL
9C | 000000B0 | DEGREE SIGN
9D | 000000B2 | SUPERSCRIPT DIGIT TWO
9E | 000000B7 | MIDDLE DOT
9F | 000000F7 | DIVISION SIGN
quick heads-up, bestie: that 9A is NO-BREAK SPACE β it looks like a space, it is not the 20 SPACE. Don't let it gaslight you. π
π¦ Double-line box drawing + the Ukrainian letters show up (0xA0β0xBF)
Now the box drawing levels up to double strokes, and the Cyrillic starts sliding in between the corners β IO, UKRAINIAN IE, BYELORUSSIAN-UKRAINIAN I, YI, and the GHE WITH UPTURN. This is the good stuff. β¨
A0 | 00002550 | BOX DRAWINGS DOUBLE HORIZONTAL
A1 | 00002551 | BOX DRAWINGS DOUBLE VERTICAL
A2 | 00002552 | BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
A3 | 00000451 | CYRILLIC SMALL LETTER IO
A4 | 00000454 | CYRILLIC SMALL LETTER UKRAINIAN IE
A5 | 00002554 | BOX DRAWINGS DOUBLE DOWN AND RIGHT
A6 | 00000456 | CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
A7 | 00000457 | CYRILLIC SMALL LETTER YI (Ukrainian)
A8 | 00002557 | BOX DRAWINGS DOUBLE DOWN AND LEFT
A9 | 00002558 | BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
AA | 00002559 | BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
AB | 0000255A | BOX DRAWINGS DOUBLE UP AND RIGHT
AC | 0000255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
AD | 00000491 | CYRILLIC SMALL LETTER GHE WITH UPTURN
AE | 0000255D | BOX DRAWINGS DOUBLE UP AND LEFT
AF | 0000255E | BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
B0 | 0000255F | BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
B1 | 00002560 | BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
B2 | 00002561 | BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
B3 | 00000401 | CYRILLIC CAPITAL LETTER IO
B4 | 00000404 | CYRILLIC CAPITAL LETTER UKRAINIAN IE
B5 | 00002563 | DOUBLE VERTICAL AND LEFT
B6 | 00000406 | CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
B7 | 00000407 | CYRILLIC CAPITAL LETTER YI (Ukrainian)
B8 | 00002566 | BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
B9 | 00002567 | BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
BA | 00002568 | BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
BB | 00002569 | BOX DRAWINGS DOUBLE UP AND HORIZONTAL
BC | 0000256A | BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
BD | 00000490 | CYRILLIC CAPITAL LETTER GHE WITH UPTURN
BE | 0000256C | BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
BF | 000000A9 | COPYRIGHT SIGN
β οΈ fr fr, keep an eye on this one:AEandBEhave a double space in the description (BOX DRAWINGS DOUBLE UP AND LEFT,BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL), andB5says justDOUBLE VERTICAL AND LEFTwith noBOX DRAWINGSprefix. That's how the table reads β don't "fix" it, just know it. π
also BF = COPYRIGHT SIGN?? nestled right at the end of the box drawing section?? slay placement honestly. Β©οΈπ
π Cyrillic small letters, the main event (0xC0β0xDF)
Twenty-two letters and they are all here β YU, A, BE, TSE, DE, IE, EF, GHE, HA, I, SHORT I, KA, EL, EM, EN, O, PE, YA, ER, ES, TE, U, ZHE, VE, SOFT SIGN, YERU, ZE, SHA, E, SHCHA, CHE, HARD SIGN. This is the alphabet's main character era. π
C0 | 0000044E | CYRILLIC SMALL LETTER YU
C1 | 00000430 | CYRILLIC SMALL LETTER A
C2 | 00000431 | CYRILLIC SMALL LETTER BE
C3 | 00000446 | CYRILLIC SMALL LETTER TSE
C4 | 00000434 | CYRILLIC SMALL LETTER DE
C5 | 00000435 | CYRILLIC SMALL LETTER IE
C6 | 00000444 | CYRILLIC SMALL LETTER EF
C7 | 00000433 | CYRILLIC SMALL LETTER GHE
C8 | 00000445 | CYRILLIC SMALL LETTER HA
C9 | 00000438 | CYRILLIC SMALL LETTER I
CA | 00000439 | CYRILLIC SMALL LETTER SHORT I
CB | 0000043A | CYRILLIC SMALL LETTER KA
CC | 0000043B | CYRILLIC SMALL LETTER EL
CD | 0000043C | CYRILLIC SMALL LETTER EM
CE | 0000043D | CYRILLIC SMALL LETTER EN
CF | 0000043E | CYRILLIC SMALL LETTER O
D0 | 0000043F | CYRILLIC SMALL LETTER PE
D1 | 0000044F | CYRILLIC SMALL LETTER YA
D2 | 00000440 | CYRILLIC SMALL LETTER ER
D3 | 00000441 | CYRILLIC SMALL LETTER ES
D4 | 00000442 | CYRILLIC SMALL LETTER TE
D5 | 00000443 | CYRILLIC SMALL LETTER U
D6 | 00000436 | CYRILLIC SMALL LETTER ZHE
D7 | 00000432 | CYRILLIC SMALL LETTER VE
D8 | 0000044C | CYRILLIC SMALL LETTER SOFT SIGN
D9 | 0000044B | CYRILLIC SMALL LETTER YERU
DA | 00000437 | CYRILLIC SMALL LETTER ZE
DB | 00000448 | CYRILLIC SMALL LETTER SHA
DC | 0000044D | CYRILLIC SMALL LETTER E
DD | 00000449 | CYRILLIC SMALL LETTER SHCHA
DE | 00000447 | CYRILLIC SMALL LETTER CHE
DF | 0000044A | CYRILLIC SMALL LETTER HARD SIGN
iykyk: C0 is YU before C1 is A β the order is not alphabetical in the slightest, and that's just how KOI8_U rolls. π«Ά
π Cyrillic capital letters begin (0xE0ββ¦)
Same alphabet, capitalised, and it kicks off in exactly the same order as the lowercase block:
E0 | 0000042E | CYRILLIC CAPITAL LETTER YU
E1 | 00000410 | CYRILLIC CAPITAL LETTER A
E2 | 00000411 | CYRILLIC CAPITAL LETTER BE
E3 | 00000426 | CYRILLIC CAPITAL LETTER TSE
E4 | 00000414 | CYRILLIC CAPITAL LETTER DE
E5 | 00000415 | CYRILLIC CAPITAL LETTER IE
E6 | 00000424 | CYRILLIC CAPITAL LETTER EF
E7 | 00000413 | CYRILLIC CAPITAL LETTER GHE
E8 | 00000425 | CYRILLIC CAPITAL LETTER HA
and we keep going, bestie β no cliffhanger, just table. π§
E9β00000418β CYRILLIC CAPITAL LETTER I πEAβ00000419β CYRILLIC CAPITAL LETTER SHORT IEBβ0000041Aβ CYRILLIC CAPITAL LETTER KAECβ0000041Bβ CYRILLIC CAPITAL LETTER ELEDβ0000041Cβ CYRILLIC CAPITAL LETTER EMEEβ0000041Dβ CYRILLIC CAPITAL LETTER ENEFβ0000041Eβ CYRILLIC CAPITAL LETTER OF0β0000041Fβ CYRILLIC CAPITAL LETTER PEF1β0000042Fβ CYRILLIC CAPITAL LETTER YAF2β00000420β CYRILLIC CAPITAL LETTER ERF3β00000421β CYRILLIC CAPITAL LETTER ESF4β00000422β CYRILLIC CAPITAL LETTER TEF5β00000423β CYRILLIC CAPITAL LETTER UF6β00000416β CYRILLIC CAPITAL LETTER ZHEF7β00000412β CYRILLIC CAPITAL LETTER VEF8β0000042Cβ CYRILLIC CAPITAL LETTER SOFT SIGNF9β0000042Bβ CYRILLIC CAPITAL LETTER YERUFAβ00000417β CYRILLIC CAPITAL LETTER ZEFBβ00000428β CYRILLIC CAPITAL LETTER SHAFCβ0000042Dβ CYRILLIC CAPITAL LETTER EFDβ00000429β CYRILLIC CAPITAL LETTER SHCHAFEβ00000427β CYRILLIC CAPITAL LETTER CHEFFβ0000042Aβ CYRILLIC CAPITAL LETTER HARD SIGN
okay and that's the whole table, bestie, you made it to FF π ngl the ordering gets a lil feral near the end (F1 just casually jumping to YA, and F6/F7 going back to 00000416 and 00000412) β that's just how the data is laid out, I don't make the rules, I just report them π copy it exactly and you're golden.
π 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!
like, all rights reserved fr fr β if you're gonna do something with this, go read the source code for the details, that's the vibe π«Ά
π¦ SEE ALSO
the squad. go read them if you want the bigger picture β¨
and that's a wrap on the whole page, bestie!! π this one's from perl v5.42.0, dated 2025-01-22 β so if you're reading this on some other version, do a lil vibe check on the date before you quote me π mwah, go encode some Cyrillic π
π¦ 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