Locale:...ACINTOSH(3)
π Locale::RecodeData::MACINTOSH(3) π
okay bestie, quick vibe check first: this page lives in the User Contributed Perl Documentation section, and the page itself shows up in the header as Locale:...ACINTOSH(3). That truncated little guy is just the header doing its thing β the actual module is Locale::RecodeData::MACINTOSH, and that's what we're talking about. π«Ά
β¨ NAME β¨
Locale::RecodeData::MACINTOSH β conversion routines for MACINTOSH. that's it, that's the whole job. literally just converting stuff to and from MACINTOSH. slay. π
πΈ SYNOPSIS πΈ
This module is internal to libintl. Do not use directly!
okay so real talk: this module is internal to libintl. it's not for you, bestie. like, it's giving backstage-pass-only. do not use it directly. no cap, please don't. π
π¦ DESCRIPTION π¦
So this module is generated β not hand-written, it's built β and it contains the conversion tables and routines for MACINTOSH. that's the whole description. short and iconic. β¨
π COMMENTS π
ngl the cutest part: the following comments have been extracted from the original charmap, and here they are in all their glory, verbatim:
version: 1.0
source: The Unicode Standard ver 1.0, ISBN 0-201-56788-1, Oct 1991
alias MAC
π¨ important heads up, babes: please note that the aliases listed above are not necessarily valid! like, don't just go assuming MAC works everywhere because you saw it here. the charmap said it, not me. π
π CHARACTER TABLE π
okay so the table that follows (coming at you in the next part, stay tuned bestie π) has some rules, and they're important:
- it's sorted in the same order as the original charmap β no reordering, no alphabetizing, we respect the source. periodt.
- all character codes are in hexadecimal. so like, hex girlies, this one's for you. π₯
- and when you see
ISO-10646, please read it asISO-10646-UCS4. yes, that's the assignment. iykyk. π
Okay so the table itself is the main character here, and she is long. Let's keep going, bestie β same three columns the whole way down: the Local byte on the left, the ISO-10646 code point in the middle, and the Description on the right. π
First up: the control characters, aka the gremlins of the byte world. Nothing to look at, everything to do. π«Ά
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)
Notice how Local and ISO-10646 line up perfectly in this range? Yeah. Cherish it. It does not last. π
Next, the printable ASCII crowd β punctuation and digits, the whole squad from space to ?:
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
Then the uppercase era, plus the bracket girlies closing out the row block:
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 the lowercase glow-up, ending right at DEL β the last row where the two hex columns still match, because after this it's giving chaos π:
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)
β¨ HERE is where things get spicy β¨ Past 7F, the Local byte and the ISO-10646 value stop agreeing, and honestly good for them, they're living their own lives now. Accents, umlauts, and friends β all of them:
80 | 000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
81 | 000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
82 | 000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
83 | 000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
84 | 000000D1 | LATIN CAPITAL LETTER N WITH TILDE
85 | 000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
86 | 000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
87 | 000000E1 | LATIN SMALL LETTER A WITH ACUTE
88 | 000000E0 | LATIN SMALL LETTER A WITH GRAVE
89 | 000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
8A | 000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
8B | 000000E3 | LATIN SMALL LETTER A WITH TILDE
8C | 000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
8D | 000000E7 | LATIN SMALL LETTER C WITH CEDILLA
8E | 000000E9 | LATIN SMALL LETTER E WITH ACUTE
8F | 000000E8 | LATIN SMALL LETTER E WITH GRAVE
90 | 000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
91 | 000000EB | LATIN SMALL LETTER E WITH DIAERESIS
92 | 000000ED | LATIN SMALL LETTER I WITH ACUTE
93 | 000000EC | LATIN SMALL LETTER I WITH GRAVE
94 | 000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
95 | 000000EF | LATIN SMALL LETTER I WITH DIAERESIS
96 | 000000F1 | LATIN SMALL LETTER N WITH TILDE
97 | 000000F3 | LATIN SMALL LETTER O WITH ACUTE
98 | 000000F2 | LATIN SMALL LETTER O WITH GRAVE
99 | 000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
9A | 000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
9B | 000000F5 | LATIN SMALL LETTER O WITH TILDE
9C | 000000FA | LATIN SMALL LETTER U WITH ACUTE
9D | 000000F9 | LATIN SMALL LETTER U WITH GRAVE
9E | 000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
9F | 000000FC | LATIN SMALL LETTER U WITH DIAERESIS
Symbol hours, no cap π daggers, degrees, money, maths, and a couple of Greek letters crashing the party:
A0 | 00002020 | DAGGER
A1 | 000000B0 | DEGREE SIGN
A2 | 000000A2 | CENT SIGN
A3 | 000000A3 | POUND SIGN
A4 | 000000A7 | SECTION SIGN
A5 | 00002022 | BULLET
A6 | 000000B6 | PILCROW SIGN
A7 | 000000DF | LATIN SMALL LETTER SHARP S (German)
A8 | 000000AE | REGISTERED SIGN
A9 | 000000A9 | COPYRIGHT SIGN
AA | 00002122 | TRADE MARK SIGN
AB | 000000B4 | ACUTE ACCENT
AC | 000000A8 | DIAERESIS
AD | 00002260 | NOT EQUAL TO
AE | 000000C6 | LATIN CAPITAL LETTER AE
AF | 000000D8 | LATIN CAPITAL LETTER O WITH STROKE
B0 | 0000221E | INFINITY
B1 | 000000B1 | PLUS-MINUS SIGN
B2 | 00002264 | LESS-THAN OR EQUAL TO
B3 | 00002265 | GREATER-THAN OR EQUAL TO
B4 | 000000A5 | YEN SIGN
B5 | 000000B5 | MICRO SIGN
B6 | 00002202 | PARTIAL DIFFERENTIAL
B7 | 00002211 | N-ARY SUMMATION
B8 | 0000220F | N-ARY PRODUCT
B9 | 000003C0 | GREEK SMALL LETTER PI
BA | 0000222B | INTEGRAL
BB | 000000AA | FEMININE ORDINAL INDICATOR
BC | 000000BA | MASCULINE ORDINAL INDICATOR
BD | 000003A9 | GREEK CAPITAL LETTER OMEGA
BE | 000000E6 | LATIN SMALL LETTER AE
BF | 000000F8 | LATIN SMALL LETTER O WITH STROKE
π Then the C block β inverted punctuation, maths, ligatures, and the dash/quote typography girlies arriving fashionably late:
C0 | 000000BF | INVERTED QUESTION MARK
C1 | 000000A1 | INVERTED EXCLAMATION MARK
C2 | 000000AC | NOT SIGN
C3 | 0000221A | SQUARE ROOT
C4 | 00000192 | LATIN SMALL LETTER F WITH HOOK
C5 | 00002248 | ALMOST EQUAL TO
C6 | 00000394 | GREEK CAPITAL LETTER DELTA
C7 | 000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
C8 | 000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
C9 | 00002026 | HORIZONTAL ELLIPSIS
CA | 000000A0 | NO-BREAK SPACE
CB | 000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
CC | 000000C3 | LATIN CAPITAL LETTER A WITH TILDE
CD | 000000D5 | LATIN CAPITAL LETTER O WITH TILDE
CE | 00000152 | LATIN CAPITAL LIGATURE OE
CF | 00000153 | LATIN SMALL LIGATURE OE
D0 | 00002013 | EN DASH
D1 | 00002014 | EM DASH
D2 | 0000201C | LEFT DOUBLE QUOTATION MARK
D3 | 0000201D | RIGHT DOUBLE QUOTATION MARK
D4 | 00002018 | LEFT SINGLE QUOTATION MARK
D5 | 00002019 | RIGHT SINGLE QUOTATION MARK
D6 | 000000F7 | DIVISION SIGN
D7 | 000025CA | LOZENGE
D8 | 000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
D9 | 00000178 | LATIN CAPITAL LETTER Y WITH DIAERESIS
DA | 00002044 | FRACTION SLASH
DB | 000020AC | EURO SIGN
DC | 00002039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK
DD | 0000203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
DE | 0000FB01 | LATIN SMALL LIGATURE FI
DF | 0000FB02 | LATIN SMALL LIGATURE FL
And the last stretch I've got for you in this part β double dagger, middle dot, a bunch of accents, and ligature-adjacent cuteness:
E0 | 00002021 | DOUBLE DAGGER
E1 | 000000B7 | MIDDLE DOT
E2 | 0000201A | SINGLE LOW-9 QUOTATION MARK
E3 | 0000201E | DOUBLE LOW-9 QUOTATION MARK
E4 | 00002030 | PER MILLE SIGN
E5 | 000000C2 | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
E6 | 000000CA | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
E7 | 000000C1 | LATIN CAPITAL LETTER A WITH ACUTE
E8 | 000000CB | LATIN CAPITAL LETTER E WITH DIAERESIS
E9 | 000000C8 | LATIN CAPITAL LETTER E WITH GRAVE
EA | 000000CD | LATIN CAPITAL LETTER I WITH ACUTE
EB | 000000CE | LATIN CAPITAL LETTER I WITH CIRCUMFLEX
EC | 000000CF | LATIN CAPITAL LETTER I WITH DIAERESIS
π and we are so not done β the table keeps going. Hold that thought, bestie, the next chunk is right there.
okay so picking the character table back up at ED β final stretch, bestie, we are so close π
β¨
EDβ000000CCβ LATIN CAPITAL LETTER I WITH GRAVEEEβ000000D3β LATIN CAPITAL LETTER O WITH ACUTEEFβ000000D4β LATIN CAPITAL LETTER O WITH CIRCUMFLEXF0β0000E01Eβ APPLE LOGO (Macintosh_F0)F1β000000D2β LATIN CAPITAL LETTER O WITH GRAVEF2β000000DAβ LATIN CAPITAL LETTER U WITH ACUTEF3β000000DBβ LATIN CAPITAL LETTER U WITH CIRCUMFLEXF4β000000D9β LATIN CAPITAL LETTER U WITH GRAVEF5β00000131β LATIN SMALL LETTER DOTLESS IF6β000002C6β MODIFIER LETTER CIRCUMFLEX ACCENTF7β000002DCβ SMALL TILDEF8β000000AFβ MACRONF9β000002D8β BREVEFAβ000002D9β DOT ABOVE (Mandarin Chinese light tone)FBβ000002DAβ RING ABOVEFCβ000000B8β CEDILLAFDβ000002DDβ DOUBLE ACUTE ACCENTFEβ000002DBβ OGONEKFFβ000002C7β CARON (Mandarin Chinese third tone)
β¨ AUTHOR β¨
Copyright (C) 2002-2017 Guido Flohr <http://www.guido-flohr.net/> (<mailto:guido.flohr@cantanea.com>), all rights reserved. For the full tea, the page says: See the source code for details!code for details! β yes, that's the exact text, no edits, iykyk ππ
π SEE ALSO π
This page is serving perl v5.42.0, dated 2025-01-22 β iconic, periodt. ππ«Ά
π¦ 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