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 as ISO-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 GRAVE
  • EE β†’ 000000D3 β€” LATIN CAPITAL LETTER O WITH ACUTE
  • EF β†’ 000000D4 β€” LATIN CAPITAL LETTER O WITH CIRCUMFLEX
  • F0 β†’ 0000E01E β€” APPLE LOGO (Macintosh_F0)
  • F1 β†’ 000000D2 β€” LATIN CAPITAL LETTER O WITH GRAVE
  • F2 β†’ 000000DA β€” LATIN CAPITAL LETTER U WITH ACUTE
  • F3 β†’ 000000DB β€” LATIN CAPITAL LETTER U WITH CIRCUMFLEX
  • F4 β†’ 000000D9 β€” LATIN CAPITAL LETTER U WITH GRAVE
  • F5 β†’ 00000131 β€” LATIN SMALL LETTER DOTLESS I
  • F6 β†’ 000002C6 β€” MODIFIER LETTER CIRCUMFLEX ACCENT
  • F7 β†’ 000002DC β€” SMALL TILDE
  • F8 β†’ 000000AF β€” MACRON
  • F9 β†’ 000002D8 β€” BREVE
  • FA β†’ 000002D9 β€” DOT ABOVE (Mandarin Chinese light tone)
  • FB β†’ 000002DA β€” RING ABOVE
  • FC β†’ 000000B8 β€” CEDILLA
  • FD β†’ 000002DD β€” DOUBLE ACUTE ACCENT
  • FE β†’ 000002DB β€” OGONEK
  • FF β†’ 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. πŸ’–πŸ«Ά