Locale:...:IBM868(3)
πΈ Locale::RecodeData::IBM868(3) πΈ
okay so real quick, bestie β this page lives in the User Contributed Perl Documentation section of the manual, and its whole government name is Locale::RecodeData::IBM868. It's part of the Locale::... family (yes, the name literally has dots in it, we don't make the rules π
). Buckle up, there are more parts coming.
β¨ NAME β¨
Locale::RecodeData::IBM868 β the conversion routines for IBM868. that's it, that's the vibe π
π¦ SYNOPSIS π¦
This module is internal to libintl. Do not use directly!
okay so this is the most important line on the whole page and I need you to hear me: this module is internal to libintl. Like, it's backstage. It's the crew. Do not use it directly! no cap, hands off π
π DESCRIPTION π
So this module is generated β nobody sat there hand-typing it, a machine made it β and what it contains is the conversion tables and the routines for IBM868. That's the whole deal, that's what it does β¨
π₯ COMMENTS π₯
these are the comments that got extracted straight out of the original charmap, verbatim, so here they are in all their glory:
version: 1.0
source: IBM NLS RM Vol2 SE09-8002-01, March 1990
alias CP868
alias CP-AR
So yeah β version 1.0, and the source is IBM NLS RM Vol2 SE09-8002-01, March 1990. There are two aliases listed: CP868 and CP-AR π
β οΈ heads up bestie, and this is important: please note that aliases listed above are not necessarily valid! Like, don't just assume they work because they're written there. the manpage said what it said π
more parts are coming, don't go anywhere π«Ά
so the columns are Local | ISO-10646 | Description, and before you scroll past β the manpage itself says this, verbatim, so pls internalize it:
The following table is sorted in the same order as the original charmap. All character codes are in hexadecimal. Please read 'ISO-10646' as 'ISO-10646-UCS4'.
Bestie. all hexadecimal. and ISO-10646 in this table means ISO-10646-UCS4, not the other UCS flavours. don't come for me, that's just what it says π
the control-character zone (0x00β0x1F) π
these are the gremlins. the ones that make your terminal beep and your logs cry. no cap:
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)
okay <kbd>0x1B</kbd> is the one that starts every escape sequence you've ever copy-pasted from stack overflow. and 0x07 is the reason your terminal screamed at you in 2019. iconic, honestly π
the ASCII stretch, 1:1, no notes (0x20β0x7F) β¨
these map so cleanly it's almost boring, and that's the point β IBM868 keeps the whole ASCII run intact before it starts doing Arabic things:
20β00000020β SPACE21β00000021β EXCLAMATION MARK22β00000022β QUOTATION MARK23β00000023β NUMBER SIGN24β00000024β DOLLAR SIGN25β00000025β PERCENT SIGN26β00000026β AMPERSAND27β00000027β APOSTROPHE28β00000028β LEFT PARENTHESIS29β00000029β RIGHT PARENTHESIS2Aβ0000002Aβ ASTERISK2Bβ0000002Bβ PLUS SIGN2Cβ0000002Cβ COMMA2Dβ0000002Dβ HYPHEN-MINUS2Eβ0000002Eβ FULL STOP2Fβ0000002Fβ SOLIDUS30β00000030β DIGIT ZERO31β00000031β DIGIT ONE32β00000032β DIGIT TWO33β00000033β DIGIT THREE34β00000034β DIGIT FOUR35β00000035β DIGIT FIVE36β00000036β DIGIT SIX37β00000037β DIGIT SEVEN38β00000038β DIGIT EIGHT39β00000039β DIGIT NINE3Aβ0000003Aβ COLON3Bβ0000003Bβ SEMICOLON3Cβ0000003Cβ LESS-THAN SIGN3Dβ0000003Dβ EQUALS SIGN3Eβ0000003Eβ GREATER-THAN SIGN3Fβ0000003Fβ QUESTION MARK40β00000040β COMMERCIAL AT41β00000041β LATIN CAPITAL LETTER A42β00000042β LATIN CAPITAL LETTER B43β00000043β LATIN CAPITAL LETTER C44β00000044β LATIN CAPITAL LETTER D45β00000045β LATIN CAPITAL LETTER E46β00000046β LATIN CAPITAL LETTER F47β00000047β LATIN CAPITAL LETTER G48β00000048β LATIN CAPITAL LETTER H49β00000049β LATIN CAPITAL LETTER I4Aβ0000004Aβ LATIN CAPITAL LETTER J4Bβ0000004Bβ LATIN CAPITAL LETTER K4Cβ0000004Cβ LATIN CAPITAL LETTER L4Dβ0000004Dβ LATIN CAPITAL LETTER M4Eβ0000004Eβ LATIN CAPITAL LETTER N4Fβ0000004Fβ LATIN CAPITAL LETTER O50β00000050β LATIN CAPITAL LETTER P51β00000051β LATIN CAPITAL LETTER Q52β00000052β LATIN CAPITAL LETTER R53β00000053β LATIN CAPITAL LETTER S54β00000054β LATIN CAPITAL LETTER T55β00000055β LATIN CAPITAL LETTER U56β00000056β LATIN CAPITAL LETTER V57β00000057β LATIN CAPITAL LETTER W58β00000058β LATIN CAPITAL LETTER X59β00000059β LATIN CAPITAL LETTER Y5Aβ0000005Aβ LATIN CAPITAL LETTER Z5Bβ0000005Bβ LEFT SQUARE BRACKET5Cβ0000005Cβ REVERSE SOLIDUS5Dβ0000005Dβ RIGHT SQUARE BRACKET5Eβ0000005Eβ CIRCUMFLEX ACCENT5Fβ0000005Fβ LOW LINE60β00000060β GRAVE ACCENT61β00000061β LATIN SMALL LETTER A62β00000062β LATIN SMALL LETTER B63β00000063β LATIN SMALL LETTER C64β00000064β LATIN SMALL LETTER D65β00000065β LATIN SMALL LETTER E66β00000066β LATIN SMALL LETTER F67β00000067β LATIN SMALL LETTER G68β00000068β LATIN SMALL LETTER H69β00000069β LATIN SMALL LETTER I6Aβ0000006Aβ LATIN SMALL LETTER J6Bβ0000006Bβ LATIN SMALL LETTER K6Cβ0000006Cβ LATIN SMALL LETTER L6Dβ0000006Dβ LATIN SMALL LETTER M6Eβ0000006Eβ LATIN SMALL LETTER N6Fβ0000006Fβ LATIN SMALL LETTER O70β00000070β LATIN SMALL LETTER P71β00000071β LATIN SMALL LETTER Q72β00000072β LATIN SMALL LETTER R73β00000073β LATIN SMALL LETTER S74β00000074β LATIN SMALL LETTER T75β00000075β LATIN SMALL LETTER U76β00000076β LATIN SMALL LETTER V77β00000077β LATIN SMALL LETTER W78β00000078β LATIN SMALL LETTER X79β00000079β LATIN SMALL LETTER Y7Aβ0000007Aβ LATIN SMALL LETTER Z7Bβ0000007Bβ LEFT CURLY BRACKET7Cβ0000007Cβ VERTICAL LINE7Dβ0000007Dβ RIGHT CURLY BRACKET7Eβ0000007Eβ TILDE7Fβ0000007Fβ DELETE (DEL)
see? 41 is 00000041 is A. 7A is 0000007A is z. no crumbs left behind, the whole run is preserved π«Ά
and now the actual plot twist β the high half (0x80β0xFF) π₯
this is where IBM868 stops being ASCII and starts being Arabic, plus a truly unhinged amount of box-drawing and shade blocks because 1980s codepages were built different. also heads up: the local codes skip around β 94, 98, 99, 9E, 9F, A5, A8, AA, E0, E2, E8, EB, EDβF0, F3βFA and FD just aren't in this charmap. that's the charmap being the charmap, not me being lazy π
80β00000660β ARABIC-INDIC DIGIT ZERO81β00000661β ARABIC-INDIC DIGIT ONE82β00000662β ARABIC-INDIC DIGIT TWO83β00000663β ARABIC-INDIC DIGIT THREE84β00000664β ARABIC-INDIC DIGIT FOUR85β00000665β ARABIC-INDIC DIGIT FIVE86β00000666β ARABIC-INDIC DIGIT SIX87β00000667β ARABIC-INDIC DIGIT SEVEN88β00000668β ARABIC-INDIC DIGIT EIGHT89β00000669β ARABIC-INDIC DIGIT NINE8Aβ0000060Cβ ARABIC COMMA8Bβ0000061Bβ ARABIC SEMICOLON8Cβ0000061Fβ ARABIC QUESTION MARK8Dβ00000622β ARABIC LETTER ALEF WITH MADDA ABOVE8Eβ00000627β ARABIC LETTER ALEF8Fβ0000FE8Eβ ARABIC LETTER ALEF FINAL FORM90β0000E016βARABIC LETTER ALEF FINAL FORM COMPATIBILITY E<lt>IBM868_90E<gt>91β00000628β ARABIC LETTER BEH92β0000FE91β ARABIC LETTER BEH INITIAL FORM93β0000067Eβ ARABIC LETTER PEH95β00000629β ARABIC LETTER TEH MARBUTA96β0000062Aβ ARABIC LETTER TEH97β0000FE97β ARABIC LETTER TEH INITIAL FORM9Aβ0000062Bβ ARABIC LETTER THEH9Bβ0000FE9Bβ ARABIC LETTER THEH INITIAL FORM9Cβ0000062Cβ ARABIC LETTER JEEM9Dβ0000FE9Fβ ARABIC LETTER JEEM INITIAL FORMA0β0000062Dβ ARABIC LETTER HAHA1β0000FEA3β ARABIC LETTER HAH INITIAL FORMA2β0000062Eβ ARABIC LETTER KHAHA3β0000FEA7β ARABIC LETTER KHAH INITIAL FORMA4β0000062Fβ ARABIC LETTER DALA6β00000630β ARABIC LETTER THALA7β00000631β ARABIC LETTER REHA9β00000632β ARABIC LETTER ZAINABβ00000633β ARABIC LETTER SEENACβ0000FEB3β ARABIC LETTER SEEN INITIAL FORMADβ00000634β ARABIC LETTER SHEENAEβ000000ABβ LEFT-POINTING DOUBLE ANGLE QUOTATION MARKAFβ000000BBβ RIGHT-POINTING DOUBLE ANGLE QUOTATION MARKB0β0000FEB7β ARABIC LETTER SHEEN INITIAL FORMB1β00000635β ARABIC LETTER SADB2β00002591β LIGHT SHADEB3β00002592β MEDIUM SHADEB4β00002593β DARK SHADEB5β00002502β BOX DRAWINGS LIGHT VERTICALB6β00002524β BOX DRAWINGS LIGHT VERTICAL AND LEFTB7β0000FEBBβ ARABIC LETTER SAD INITIAL FORMB8β00000636β ARABIC LETTER DADB9β0000FEBFβ ARABIC LETTER DAD INITIAL FORMBAβ00000637β ARABIC LETTER TAHBBβ00002563β BOX DRAWINGS DOUBLE VERTICAL AND LEFTBCβ00002551β BOX DRAWINGS DOUBLE VERTICALBDβ00002557β BOX DRAWINGS DOUBLE DOWN AND LEFTBEβ0000255Dβ BOX DRAWINGS DOUBLE UP AND LEFTBFβ00000638β ARABIC LETTER ZAHC0β00000639β ARABIC LETTER AINC1β00002510β BOX DRAWINGS LIGHT DOWN AND LEFTC2β00002514β BOX DRAWINGS LIGHT UP AND RIGHTC3β00002534β BOX DRAWINGS LIGHT UP AND HORIZONTALC4β0000252Cβ BOX DRAWINGS LIGHT DOWN AND HORIZONTALC5β0000251Cβ BOX DRAWINGS LIGHT VERTICAL AND RIGHTC6β00002500β BOX DRAWINGS LIGHT HORIZONTALC7β0000253Cβ BOX DRAWINGS LIGHT VERTICAL AND HORIZONTALC8β0000FECAβ ARABIC LETTER AIN FINAL FORMC9β0000FECBβ ARABIC LETTER AIN INITIAL FORMCAβ0000255Aβ BOX DRAWINGS DOUBLE UP AND RIGHTCBβ00002554β BOX DRAWINGS DOUBLE DOWN AND RIGHTCCβ00002569β BOX DRAWINGS DOUBLE UP AND HORIZONTALCDβ00002566β BOX DRAWINGS DOUBLE DOWN AND HORIZONTALCEβ00002560β BOX DRAWINGS DOUBLE VERTICAL AND RIGHTCFβ00002550β BOX DRAWINGS DOUBLE HORIZONTALD0β0000256Cβ BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTALD1β0000FECCβ ARABIC LETTER AIN MEDIAL FORMD2β0000063Aβ ARABIC LETTER GHAIND3β0000FECEβ ARABIC LETTER GHAIN FINAL FORMD4β0000FECFβ ARABIC LETTER GHAIN INITIAL FORMD5β0000FED0β ARABIC LETTER GHAIN MEDIAL FORMD6β00000641β ARABIC LETTER FEHD7β0000FED3β ARABIC LETTER FEH INITIAL FORMD8β00000642β ARABIC LETTER QAFD9β0000FED7β ARABIC LETTER QAF INITIAL FORMDAβ0000FEDAβ ARABIC LETTER KAF FINAL FORMDBβ00002518β BOX DRAWINGS LIGHT UP AND LEFTDCβ0000250Cβ BOX DRAWINGS LIGHT DOWN AND RIGHTDDβ00002588β FULL BLOCKDEβ00002580β UPPER HALF BLOCKDFβ0000FEDBβ ARABIC LETTER KAF INITIAL FORME1β00002584β LOWER HALF BLOCKE3β00000644β ARABIC LETTER LAME4β0000FEDEβ ARABIC LETTER LAM FINAL FORME5β0000FEE0β ARABIC LETTER LAM MEDIAL FORME6β00000645β ARABIC LETTER MEEME7β0000FEE3β ARABIC LETTER MEEM INITIAL FORME9β00000646β ARABIC LETTER NOONEAβ0000FEE7β ARABIC LETTER NOON INITIAL FORMECβ00000648β ARABIC LETTER WAWF1β00000621β ARABIC LETTER HAMZAF2β000000ADβ SOFT HYPHENFBβ00000651β ARABIC SHADDAFCβ0000FE7Dβ ARABIC SHADDA MEDIAL FORMFEβ000025A0β BLACK SQUAREFFβ000000A0β NO-BREAK SPACE
a few faves from this half, not gonna lie:
<pink>the presentation forms</pink>β all thoseFE..codes likeFE8E,FE91,FEB3,FEE7are the shaped versions of the letters (FINAL FORM, INITIAL FORM, MEDIAL FORM). the base letters live in the06..range. so8Egives you00000627(plain ALEF) and8Fgives you0000FE8E(ALEF FINAL FORM). that distinction is real and it matters, bestie, don't flatten them π§<purple>``90is the weird one</purple>β0000E016with the noteARABIC LETTER ALEF FINAL FORM COMPATIBILITY E<lt>IBM868_90E<gt>. thatE<lt>/E<gt>is exactly how it's written here, it's a pod escape thing, and yes it's staying exactly like that because I don't break the source π<mint>box drawing central</mint>βB5βD0andDBβE1are basically a whole TUI framework hiding in your codepage.DDis00002588FULL BLOCK.C6is00002500BOX DRAWINGS LIGHT HORIZONTAL. if you've ever drawn a menu in a 1988 terminal, this is the palette π<yellow>shades</yellow>βB2,B3,B4are00002591/00002592/00002593, i.e. LIGHT, MEDIUM and DARK SHADE. gradients before gradients were a thing π₯<lavender>punct guests</lavender>βAEandAFare000000ABand000000BB, the angle quotation marks.F2is000000ADSOFT HYPHEN, andFFis000000A0NO-BREAK SPACE. two plain old Latin-1-ish oddballs chilling in the Arabic block, living their best life β¨
reminder bestie:ISO-10646here =ISO-10646-UCS4. and every number in this table is hexadecimal. write0xFF, not255, when you're talking to this page π
π AUTHOR π
Okay so this whole thing? Written by an actual human, no cap:
- Copyright (C) 2002-2017 Guido Flohr <http://www.guido-flohr.net/> (<mailto:guido.flohr@cantanea.com>)
- all rights reserved π
And bestie, listen β if you want the actual deets, the manpage says straight up: See the source code for details!code for details! β¨ (yes, that's literally how it's printed in the page β the code for details! bit is doubled up in the original, and honestly? iconic of a manpage that has seen things. iykyk. we leave it exactly as it stands, no cap.)
π¦ SEE ALSO π¦
Go touch these next, they're the whole friend group:
Locale::RecodeData(3)β the data side of things, the vibe check provider π«ΆLocale::Recode(3)β the recoding main character πperl(1)β literally the mothership, you already know her π
lowkey reminder: none of the flags or behaviour on this page are invented by me β everything above comes straight from the page itself, typos and all, periodt. π
that's the whole page, bestie!! πΈ you just read the entire Locale::...:IBM868(3) situation β part three, done and dusted, ate and left no crumbs.
little sign-off moment π β this page ships from perl v5.42.0, dated 2025-01-22, and the footer stamps it as Locale:...:IBM868(3) β the IBM868 recode data page in the Perl v5.42.0 docs, one last time because she deserves her flowers. π
go forth and recode, queen πβ¨π
π¦ 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