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 if ISO-IR-179 or LATIN7 or L7 don'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 πŸ’œπŸ§šβ€β™€οΈ