Locale:..._8859_9(3)
π
Locale::..._8859_9(3) β a.k.a. Locale::RecodeData::ISO_8859_9 π
okay bestie, welcome to the manual page for Locale::..._8859_9(3), whose full government name is Locale::RecodeData::ISO_8859_9 π this is part 1 of 3 so don't go anywhere, we're just getting started β¨
πΈ NAME πΈ
Locale::RecodeData::ISO_8859_9 β the conversion routines for ISO-8859-9, periodt π
that's literally the whole job. it converts stuff. ISO-8859-9 stuff. slay.
β¨ SYNOPSIS β¨
This module is internal to libintl. Do not use directly!
no cap, that's the entire synopsis π this module is internal to libintl and you are not supposed to use it directly. like, it's giving backstage-pass-only energy. it's not for you, bestie, it's for libintl. so please don't come for it π
π¦ DESCRIPTION π¦
so this module is generated β like, auto-generated, not hand-written by some poor soul β and it contains the conversion tables and routines for ISO-8859-9 β¨ that's it, that's the vibe. tables + routines, ISO-8859-9 flavored, freshly generated π
π COMMENTS π
the following comments have been extracted from the original charmap π so this is basically the receipts, straight from the source, iykyk:
version: 1.0
source: ECMA registry
alias ISO-IR-148
alias ISO_8859-9:1989
alias ISO_8859-9
alias LATIN5
alias L5
β οΈ okay important heads-up, bestie: please note that aliases listed above are not necessarily valid! π like, they're in the charmap, they're not a promise. don't come for me if one of them doesn't work, that's literally what the original says π
π CHARACTER TABLE π
the following table is sorted in the same order as the original charmap πΈ all character codes are in hexadecimal π₯ and β this part matters β please read 'ISO-10646' as 'ISO-10646-UCS4' π like, wherever you see ISO-10646, mentally swap in ISO-10646-UCS4, okay? that's the assignment. no notes. π«Ά
to be continued in part 2, bestieβ¦ πβ
okay so we're picking the table back up at 00 β the control characters, aka the OG unprintable squad π these bad boys don't look like anything, they do things. <pink>Local</pink> is the byte you actually have, <purple>ISO-10646</purple> is the universal code point it maps to, and <mint>Description</mint> is the vibe. lowkey obsessed with how tidy this is:
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)
not the separator abbreviations being <purple>IS4</purple> for FILE SEPARATOR and <purple>IS1</purple> for UNIT SEPARATOR β the numbering goes backwards, and honestly? it's giving chaos but we respect it π«Ά
okay next block is the printable ASCII era, where everything is literally just itself, no translation drama, no notes. easy slay:
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
2D is <yellow>HYPHEN-MINUS</yellow> btw, not just "hyphen" β she's both, she contains multitudes π
capital letters era!! the way <hotpink>40</hotpink> is <purple>COMMERCIAL AT</purple> and not just "at sign" β ms ma'am is on her corporate era π
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
5C being <pink>REVERSE SOLIDUS</pink> is so real, everyone calls her backslash but the manpage said "be formal" π
lowercase era, plus the bracket/tilde finale of ASCII. <purple>60</purple> is <purple>GRAVE ACCENT</purple>, she's the little ` backtick that could π
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)
and that's ASCII wrapped, <yellow>DELETE (DEL)</yellow> closing it out like a season finale β¨ your girl does NOT want to see 7F in her strings, periodt.
okay now we're in the <hotpink>C1</hotpink> control zone, 80β9F, and these are the fancy unicode names β <purple>PADDING CHARACTER (PAD)</purple>, <purple>HIGH OCTET PRESET (HOP)</purple>... it's giving high fantasy novel cast list ngl π
80 | 00000080 | PADDING CHARACTER (PAD)
81 | 00000081 | HIGH OCTET PRESET (HOP)
82 | 00000082 | BREAK PERMITTED HERE (BPH)
83 | 00000083 | NO BREAK HERE (NBH)
84 | 00000084 | INDEX (IND)
85 | 00000085 | NEXT LINE (NEL)
86 | 00000086 | START OF SELECTED AREA (SSA)
87 | 00000087 | END OF SELECTED AREA (ESA)
88 | 00000088 | CHARACTER TABULATION SET (HTS)
89 | 00000089 | CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
8A | 0000008A | LINE TABULATION SET (VTS)
8B | 0000008B | PARTIAL LINE FORWARD (PLD)
8C | 0000008C | PARTIAL LINE BACKWARD (PLU)
8D | 0000008D | REVERSE LINE FEED (RI)
8E | 0000008E | SINGLE-SHIFT TWO (SS2)
8F | 0000008F | SINGLE-SHIFT THREE (SS3)
90 | 00000090 | DEVICE CONTROL STRING (DCS)
91 | 00000091 | PRIVATE USE ONE (PU1)
92 | 00000092 | PRIVATE USE TWO (PU2)
93 | 00000093 | SET TRANSMIT STATE (STS)
94 | 00000094 | CANCEL CHARACTER (CCH)
95 | 00000095 | MESSAGE WAITING (MW)
96 | 00000096 | START OF GUARDED AREA (SPA)
97 | 00000097 | END OF GUARDED AREA (EPA)
98 | 00000098 | START OF STRING (SOS)
99 | 00000099 | SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
9A | 0000009A | SINGLE CHARACTER INTRODUCER (SCI)
9B | 0000009B | CONTROL SEQUENCE INTRODUCER (CSI)
9C | 0000009C | STRING TERMINATOR (ST)
9D | 0000009D | OPERATING SYSTEM COMMAND (OSC)
9E | 0000009E | PRIVACY MESSAGE (PM)
9F | 0000009F | APPLICATION PROGRAM COMMAND (APC)
8D as <pink>REVERSE LINE FEED (RI)</pink>?? she rewinds, she's quirky, we love her π and 99 walking in as <purple>SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)</purple> with that 4-letter acronym β main character energy fr.
okay NOW we get to the actual letters, A0 onward β this is where the charset starts being useful and not just obscure control codes. <yellow>NO-BREAK SPACE</yellow> opens the party and refuses to let the line break, iconic behaviour:
A0 | 000000A0 | NO-BREAK SPACE
A1 | 000000A1 | INVERTED EXCLAMATION MARK
A2 | 000000A2 | CENT SIGN
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
AA | 000000AA | FEMININE ORDINAL INDICATOR
AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AC | 000000AC | NOT SIGN
AD | 000000AD | SOFT HYPHEN
AE | 000000AE | REGISTERED SIGN
AF | 000000AF | MACRON
B0 | 000000B0 | DEGREE SIGN
B1 | 000000B1 | PLUS-MINUS SIGN
B2 | 000000B2 | SUPERSCRIPT TWO
B3 | 000000B3 | SUPERSCRIPT THREE
B4 | 000000B4 | ACUTE ACCENT
B5 | 000000B5 | MICRO SIGN
B6 | 000000B6 | PILCROW SIGN
B7 | 000000B7 | MIDDLE DOT
B8 | 000000B8 | CEDILLA
B9 | 000000B9 | SUPERSCRIPT ONE
BA | 000000BA | MASCULINE ORDINAL INDICATOR
BB | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
BC | 000000BC | VULGAR FRACTION ONE QUARTER
BD | 000000BD | VULGAR FRACTION ONE HALF
BE | 000000BE | VULGAR FRACTION THREE QUARTERS
BF | 000000BF | INVERTED QUESTION MARK
shoutout <purple>B2</purple> <purple>SUPERSCRIPT TWO</purple> and <purple>B9</purple> <purple>SUPERSCRIPT ONE</purple> being listed two, three, then one β out of order bestie? we're not gonna talk about it π also <hotpink>VULGAR FRACTION</hotpink> is genuinely the funniest official name for ΒΌ Β½ ΒΎ and I will not be elaborating π
accented capitals time!! this is where <rainbow>Γ Γ Γ Γ Γ</rainbow> girlies live, and yes <purple>C6</purple> is <purple>LATIN CAPITAL LETTER AE</purple> (the Γ¦ ligature, capital edition) and <purple>C5</purple> is that <purple>A WITH RING ABOVE</purple> β Γ
said hello π
C0 | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
C1 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
C2 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
C3 | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
C6 | 000000C6 | LATIN CAPITAL LETTER AE
C7 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
C8 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
CA | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
CB | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
CC | 000000CC | LATIN CAPITAL LETTER I WITH GRAVE
CD | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
CE | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
CF | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
seventeen letters in a row and every single one is just "yeah but with a little hat" β the French delegation ate and left no crumbs π₯
and here's where it gets interesting bestie, because <pink>D0</pink> and <pink>DD</pink> and <pink>DE</pink> do NOT map to 000000D0, 000000DD, 000000DE like you'd assume β look at the middle column, they jump:
D0β0000011EDDβ00000130DEβ0000015E
the way the pattern just breaks for those three and keeps going for everyone else β it's giving plot twist, it's giving iykyk, and it's exactly why you read the table instead of guessing π no cap. also <purple>DF</purple> is <purple>LATIN SMALL LETTER SHARP S (German)</purple> which is the only row that shouts out a whole language in the description. Γ said "I'm special" and honestly? correct πΈ
D0 | 0000011E | LATIN CAPITAL LETTER G WITH BREVE
D1 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
D2 | 000000D2 | LATIN CAPITAL LETTER O WITH GRAVE
D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
D4 | 000000D4 | LATIN CAPITAL LETTER O WITH CIRCUMFLEX
D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
D7 | 000000D7 | MULTIPLICATION SIGN
D8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
D9 | 000000D9 | LATIN CAPITAL LETTER U WITH GRAVE
DA | 000000DA | LATIN CAPITAL LETTER U WITH ACUTE
DB | 000000DB | LATIN CAPITAL LETTER U WITH CIRCUMFLEX
DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
DD | 00000130 | LATIN CAPITAL LETTER I WITH DOT ABOVE
DE | 0000015E | LATIN CAPITAL LETTER S WITH CEDILLA
DF | 000000DF | LATIN SMALL LETTER SHARP S (German)
D7 being <yellow>MULTIPLICATION SIGN</yellow> chilling in the middle of all the letters like an exchange student β and D8 <purple>LATIN CAPITAL LETTER O WITH STROKE</purple> (that's Γ) sliding in right after it? the vibe check passed β¨
and the last slice of this part is the accented lowercase squad, starting with the E0 family β <rainbow>Γ Γ‘ Γ’ Γ£ Γ€ Γ₯</rainbow> all lined up in order like a girl group formation π€
E0 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
E1 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
E2 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
E3 | 000000E3 | LATIN SMALL LETTER A WITH TILDE
E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
E6 | 000000E6 | LATIN SMALL LETTER AE
E7 | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
E8 | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
EA | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
EB | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
E6 as <purple>LATIN SMALL LETTER AE</purple> is the lowercase Γ¦, matching her capital bestie C6 up there π«Ά and E7 is <purple>LATIN SMALL LETTER C WITH CEDILLA</purple> β Γ§, the little tail that could, absolute icon.
and that's where we're pausing, bestie β the table keeps going and so do we π `
EC | 000000EC | LATIN SMALL LETTER I WITH GRAVE
ED | 000000ED | LATIN SMALL LETTER I WITH ACUTE
EE | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
EF | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
F0 | 0000011F | LATIN SMALL LETTER G WITH BREVE
F1 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
F2 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
F4 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
F7 | 000000F7 | DIVISION SIGN
F8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
F9 | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
FA | 000000FA | LATIN SMALL LETTER U WITH ACUTE
FB | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
FD | 00000131 | LATIN SMALL LETTER DOTLESS I
FE | 0000015F | LATIN SMALL LETTER S WITH CEDILLA
FF | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
okay bestie, that's the whole table, FF and out, we literally did it β¨ the last one is that iconic LATIN SMALL LETTER Y WITH DIAERESIS and she ate, no notes π
π AUTHOR π
say hi to the mastermind, the main character of this whole file:
- Copyright (C) 2002-2017 Guido Flohr
<http://www.guido-flohr.net/>(<mailto:guido.flohr@cantanea.com>), all rights reserved.
and like, the manpage says it twice (a little copy-paste moment, we love a typo era π), but the message is clear: see the source code for details! that's where the real lore lives, iykyk ππ
π¦ SEE ALSO π¦
the little friend group this page rolls with β go say hi, they're all iconic:
Locale::RecodeData(3)β the data squadLocale::Recode(3)β the actual recoding bestieperl(1)β mother, obviously π
and that's a wrap on our girl π this page ships with perl v5.42.0, dated 2025-01-22, and yeah β that footer is literally the same Locale:..._8859_9(3) we've been hanging out in this whole time, full circle slay πβ go convert some bytes, bestie, you're gonna do amazing πβ¨π«Ά
π¦ 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