Locale:..._8859_13(3)
π NAME
ok so bestie, this whole page is about Locale::RecodeData::ISO_8859_13 β literally just the conversion routines for ISO-8859-13 π that's it, that's the job.
β¨ SYNOPSIS β¨
okay so real talk, this module is internal to libintl. like, it lives in the walls of the house, it's not the front door π«Ά
π¨ Do not use directly! β like, seriously bestie, this is not for you, this is backstage crew energy, no cap.
π¦ DESCRIPTION π¦
so this module is generated β not hand-written, it's machine-made, iconic behavior honestly β and it holds all the conversion tables and routines for ISO-8859-13 π that's the whole vibe. nothing more, nothing less, and honestly that's enough.
πΈ COMMENTS πΈ
the following comments have been extracted from the original charmap, so like, receipts from the source π here they are verbatim:
automatically generated from the charDB
alias ISO-IR-179
alias LATIN7
alias L7
π okay so small warning before you get too excited: please note that aliases listed above are not necessarily valid! like, don't come for me ifISO-IR-179orLATIN7orL7don't do what you hoped β they're just what the charmap said, and that's a vibe check they might not pass π
π CHARACTER TABLE π
the following table is sorted in the same order as the original charmap β no reshuffling here, we respect the source, periodt π
all character codes are in hexadecimal, so read them in hex or just trust the process π₯
and a tiny translation moment for you, bestie: please read 'ISO-10646' as 'ISO-10646-UCS4' β that's the rule, iykyk β
...and honestly bestie, the table just keeps going π
so let's lock in, hydrate, and vibe-check every byte together. Same three columns the whole way down: Local (the byte you actually have), ISO-10646 (what it maps to), and Description (the name, because everything deserves a name β¨).
First up, the tiny control gremlins β 00 through 1F. None of these have vibes you can see, but they run the whole show π
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
SPACE kicks the door open at 20 and then it's just... punctuation's main character era π every bracket, every sign, every mark getting its own little line. Also the digits show up early because of course they do.
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 is COMMERCIAL AT, and then it's the alphabet's red carpet π capital letters 41β5A strutting, then the bracket / backslash / caret / underscore / grave-accent club closing out the row.
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
And now the lowercase era β 60 GRAVE ACCENT, then 61β7A doing the exact same alphabet run but smol and iconic, then the curly brackets, vertical line and tilde, and finally 7F DELETE just sitting there like π
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
Okay now 80β9F β this is the block where every entry is a control character with a full name and a three-letter abbreviation in parentheses, and honestly the acronyms alone are a mood πΈ PAD, HOP, BPH, NBH, IND, NEL... not me reading these like a spellbook π
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)
Now the A0 row and friends β this is where things get interesting for this particular encoding, because the ISO-10646 column is NOT just "same number, add a zero" anymore π watch:
A0 | 000000A0 | NO-BREAK SPACE
A1 | 0000201D | RIGHT DOUBLE QUOTATION MARK
A2 | 000000A2 | CENT SIGN
A3 | 000000A3 | POUND SIGN
A4 | 000000A4 | CURRENCY SIGN
A5 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
A6 | 000000A6 | BROKEN BAR
A7 | 000000A7 | SECTION SIGN
A8 | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
A9 | 000000A9 | COPYRIGHT SIGN
AA | 00000156 | LATIN CAPITAL LETTER R WITH CEDILLA
AB | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
AC | 000000AC | NOT SIGN
AD | 000000AD | SOFT HYPHEN
AE | 000000AE | REGISTERED SIGN
AF | 000000C6 | LATIN CAPITAL LETTER AE
B0 | 000000B0 | DEGREE SIGN
B1 | 000000B1 | PLUS-MINUS SIGN
B2 | 000000B2 | SUPERSCRIPT TWO
B3 | 000000B3 | SUPERSCRIPT THREE
B4 | 0000201C | LEFT DOUBLE QUOTATION MARK
B5 | 000000B5 | MICRO SIGN
B6 | 000000B6 | PILCROW SIGN
B7 | 000000B7 | MIDDLE DOT
B8 | 000000F8 | LATIN SMALL LETTER O WITH STROKE
B9 | 000000B9 | SUPERSCRIPT ONE
BA | 00000157 | LATIN SMALL LETTER R WITH CEDILLA
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 | 000000E6 | LATIN SMALL LETTER AE
Like β A1 is 0000201D?? B4 is 0000201C?? the quotation marks went upstairs π¦ and A8 maps to 000000D8, AF to 000000C6, B8 to 000000F8, BF to 000000E6. Literally the letters O-with-stroke and AE getting placed down here. That's the whole point of the table β read the middle column, don't assume π
And here comes the capital-with-diacritics run, C0 onward. Ogoneks! Macrons! Cedillas! Carons! Dots above! This is the row where the description column turns into a whole Baltic language lesson and honestly it ate π
C0 | 00000104 | LATIN CAPITAL LETTER A WITH OGONEK
C1 | 0000012E | LATIN CAPITAL LETTER I WITH OGONEK
C2 | 00000100 | LATIN CAPITAL LETTER A WITH MACRON
C3 | 00000106 | LATIN CAPITAL LETTER C WITH ACUTE
C4 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
C5 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
C6 | 00000118 | LATIN CAPITAL LETTER E WITH OGONEK
C7 | 00000112 | LATIN CAPITAL LETTER E WITH MACRON
C8 | 0000010C | LATIN CAPITAL LETTER C WITH CARON
C9 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
CA | 00000179 | LATIN CAPITAL LETTER Z WITH ACUTE
CB | 00000116 | LATIN CAPITAL LETTER E WITH DOT ABOVE
CC | 00000122 | LATIN CAPITAL LETTER G WITH CEDILLA
CD | 00000136 | LATIN CAPITAL LETTER K WITH CEDILLA
CE | 0000012A | LATIN CAPITAL LETTER I WITH MACRON
CF | 0000013B | LATIN CAPITAL LETTER L WITH CEDILLA
D0 | 00000160 | LATIN CAPITAL LETTER S WITH CARON
D1 | 00000143 | LATIN CAPITAL LETTER N WITH ACUTE
D2 | 00000145 | LATIN CAPITAL LETTER N WITH CEDILLA
D3 | 000000D3 | LATIN CAPITAL LETTER O WITH ACUTE
D4 | 0000014C | LATIN CAPITAL LETTER O WITH MACRON
D5 | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
D6 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
D7 | 000000D7 | MULTIPLICATION SIGN
D8 | 00000172 | LATIN CAPITAL LETTER U WITH OGONEK
D9 | 00000141 | LATIN CAPITAL LETTER L WITH STROKE
DA | 0000015A | LATIN CAPITAL LETTER S WITH ACUTE
DB | 0000016A | LATIN CAPITAL LETTER U WITH MACRON
DC | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
DD | 0000017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE
DE | 0000017D | LATIN CAPITAL LETTER Z WITH CARON
DF | 000000DF | LATIN SMALL LETTER SHARP S
Shoutout to D7 MULTIPLICATION SIGN just hanging out in the middle of all the letters, and DF LATIN SMALL LETTER SHARP S crashing the capital-letter party π iconic behaviour honestly.
And the lowercase versions start rolling in β same diacritics, smol edition π starting with E0:
E0 | 00000105 | LATIN SMALL LETTER A WITH OGONEK
E1 | 0000012F | LATIN SMALL LETTER I WITH OGONEK
E2 | 00000101 | LATIN SMALL LETTER A WITH MACRON
E3 | 00000107 | LATIN SMALL LETTER C WITH ACUTE
E4 | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
E5 | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
E6 | 00000119 | LATIN SMALL LETTER E WITH OGONEK
E7 | 00000113 | LATIN SMALL LETTER E WITH MACRON
E8 | 0000010D | LATIN SMALL LETTER C WITH CARON
E9 | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
EA | 0000017A | LATIN SMALL LETTER Z WITH ACUTE
EB | 00000117 | LATIN SMALL LETTER E WITH DOT ABOVE
EC | 00000123 | LATIN SMALL LETTER G WITH CEDILLA
Not the table continuing past EC π€ bestie it's still going β more lowercase diacritic cuties are lined up right after this...
ED | 00000137 | LATIN SMALL LETTER K WITH CEDILLA
EE | 0000012B | LATIN SMALL LETTER I WITH MACRON
EF | 0000013C | LATIN SMALL LETTER L WITH CEDILLA
F0 | 00000161 | LATIN SMALL LETTER S WITH CARON
F1 | 00000144 | LATIN SMALL LETTER N WITH ACUTE
F2 | 00000146 | LATIN SMALL LETTER N WITH CEDILLA
F3 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
F4 | 0000014D | LATIN SMALL LETTER O WITH MACRON
F5 | 000000F5 | LATIN SMALL LETTER O WITH TILDE
F6 | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
F7 | 000000F7 | DIVISION SIGN
F8 | 00000173 | LATIN SMALL LETTER U WITH OGONEK
F9 | 00000142 | LATIN SMALL LETTER L WITH STROKE
FA | 0000015B | LATIN SMALL LETTER S WITH ACUTE
FB | 0000016B | LATIN SMALL LETTER U WITH MACRON
FC | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
FD | 0000017C | LATIN SMALL LETTER Z WITH DOT ABOVE
FE | 0000017E | LATIN SMALL LETTER Z WITH CARON
FF | 00002019 | RIGHT SINGLE QUOTATION MARK
And that's the whole rest of the table, bestie β we literally made it to FF π no cap, the last row being 00002019 RIGHT SINGLE QUOTATION MARK is such a main character exit, she's giving punctuation icon energy π
π AUTHOR
Okay so credit where credit is due, periodt:
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!
Likeβ¦ yes, he really said "details" twice, and honestly? Mood. Obsessed with the confidence π«Ά All rights reserved though, so don't go feral with it β check the source code for the actual fine print, iykyk.
π SEE ALSO
Go touch these next, they're the whole friend group:
β¨π aaand that's a wrap on Locale:..._8859_13(3)! This little gem shipped as part of perl v5.42.0, dated 2025-01-22 β so you're reading something very fresh, bestie π go forth and recode your little heart out ππ§ββοΈ
π¦ 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