Code page 858

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Code page 858
Alias(es)CCSID00858, CP00858, PC-Multilingual-850+euro[1]
Transforms / EncodesISO 8859-1
Preceded byCode page 850

Code page 858 (CCSID 858)[2] (also known as CP 858, IBM 00858, OEM 858[3]) is a code page used under DOS to write Western European languages.[4]

Similarly to code page 850, code page 858 supports the entire repertoire of ISO 8859-1, but in a different arrangement. Code page 858 was created from code page 850 in 1998 by changing code point 213 (D5hex) from dotless i (ı) (a character not included in ISO-8859-1) to the euro sign (€).[4] Unlike most code pages modified to support the euro sign, the generic currency sign at CFhex (an ISO-8859-1 character, changed to the euro sign in ISO-8859-15) was not chosen as the character to replace.[nb 1]

Still, instead of adding support for the new code page 858, IBM's PC DOS 2000, also released in 1998, changed the definition of the existing code page 850 to what IBM called modified code page 850 to include the euro sign at code point 213.[nb 2][5][6][7][8][9] More recent IBM/MS products implemented codepage 858 under its own ID.

Character set[edit]

The following table shows code page 858. Each character appears with its equivalent Unicode code-point. The decimal value of the location is the Alt code. Only the second half of the table (code points 128–255) is shown, the first half (code points 0–127) being the same as code page 850.

Code page 858[10][11][3]
0 1 2 3 4 5 6 7 8 9 A B C D E F
8x Ç ü é â ä à å ç ê ë è ï î ì Ä Å
9x É æ Æ ô ö ò û ù ÿ Ö Ü ø £ Ø × ƒ
Ax á í ó ú ñ Ñ ª º ¿ ® ¬ ½ ¼ ¡ « »
Bx Á Â À © ¢ ¥
Cx ã Ã ¤
Dx ð Ð Ê Ë È Í Î Ï ¦ Ì
Ex Ó ß Ô Ò õ Õ µ þ Þ Ú Û Ù ý Ý ¯ ´
Fx SHY ± ¾ § ÷ ¸ ° ¨ · ¹ ³ ² NBSP
  Differences from code page 850


  1. ^ As well as ISO-8859-1 versus -15, compare code pages 808 (from 866), 848 (from 1125), 849 (from 1131) and 872 (from 855), ISO-IR-205 (from ISO-8859-4), ISO-IR-206 (from ISO-8859-13), and the changes to MacRoman and MacCyrillic.
  2. ^ The reason for this might have been down to existing restrictions in the implementation of the codepage switching logic under MS-DOS/PC DOS, which limited .CPI files to 64 KB in size or about six codepages maximum, a limitation, which was circumvented in some OEM versions of MS-DOS, in Windows NT, and also does not exist in DR-DOS. Further, the parser in MS-DOS/PC DOS limits the number of possible country / codepage entries in COUNTRY.SYS files to a maximum of 146 or 438, a limitation non-existent in DR-DOS. So, adding support for codepage 858 might have meant to drop another (e.g. codepage 850) at the same time, which might not have been a viable solution at that time, given that some applications were hard-wired to use codepage 850.


  1. ^ "Character Sets". Internet Assigned Numbers Authority (IANA). 2018-12-12. Archived from the original on 2022-01-28. Retrieved 2022-01-28.
  2. ^ "CCSID 858 information document". IBM. Archived from the original on 2016-03-27.
  3. ^ a b "OEM 858". Go Global Developer Center. Microsoft. Archived from the original on 2016-03-08. Retrieved 2011-11-23.
  4. ^ a b "Code page 858 information document". IBM. Archived from the original on 2016-08-20.
  5. ^ Paul, Matthias R. (2001-08-15). "Changing codepages in FreeDOS" (Technical design specification). Archived from the original on 2016-08-20. Retrieved 2013-05-08. The new official ID for the Multilingual "codepage 850 with EURO SIGN" is 858, not 850. IBM will switch to use 858 instead of their 850 variant with future issues of their products. […] I can only guess why they didn't add 858 to their EGAx.CPI, COUNTRY.SYS, and KEYBOARD.SYS files in PC DOS 2000. Many third-party applications are designed to work with 850 and didn't know about 858 at the time PC DOS 2000 was released, so it's easier for everyone, but unfortunately it's not compatible. […] As explained above, COUNTRY.SYS and KEYBOARD.SYS contain only two codepage entries for a given country in Western issues of DOS. (In Arabic and Hebrew issues there can be up to 8 codepages for one country, in theory there is no limit below the range of allowed codepages 1..65534). […] The problem is that removing support for 850 might have caused compatibility problems with applications which are hard-wired to use 850. Adding 858 as a third choice to all the files would have increased the file and table sizes significantly. The COUNTRY.SYS file parser in MS-DOS/PC DOS IO.SYS/IBMBIO.COM sets aside a 6 Kb (for DOS 6) scratchpad to load all the info. This allows a maximum of 438 entries in a COUNTRY.SYS file to be accepted, otherwise you will get the message "COUNTRY.SYS too large.". The NLSFUNC parser does not have this limitation, and the file parsers in DR-DOS (kernel and NLSFUNC) also do not know of such a restriction. Older issues of MS-DOS/PC DOS even had a 2 Kb buffer for a maximum of 146 entries.
  6. ^ Paul, Matthias R. (2001-06-10) [1995]. "DOS COUNTRY.SYS file format" (COUNTRY.LST file) (1.44 ed.). Archived from the original on 2016-04-20. Retrieved 2016-08-20.
  7. ^ Starikov, Yuri (2005-04-11). "15-летию Russian MS-DOS 4.01 посвящается" [15 Years of Russian MS-DOS 4.01] (in Russian). Archived from the original on 2016-08-20. Retrieved 2014-05-07.
  8. ^ Paul, Matthias R. (2001-08-27). "Changing codepages in FreeDOS (follow-up)". Archived from the original on 2014-10-01. Retrieved 2013-05-08. […] one could also create custom .CPI files in the traditional FONT style without difficulties, but you could only store up to […] six codepages in such a file if it should be usable by MS-DOS/PC DOS (some OEM issues and NT can handle files larger than 64 Kb, but MS-DOS/PC DOS can not). (NB. Based on fd-dev post [1].)
  9. ^ Paul, Matthias R. (2001-06-10) [1995]. "Format description of DOS, OS/2, and Windows NT .CPI, and Linux .CP files" (CPI.LST file) (1.30 ed.). Archived from the original on 2016-04-20. Retrieved 2016-08-20.
  10. ^ "Code Page CPGID 00858" (PDF). IBM. Retrieved 2022-01-28.
  11. ^ "Code Page CPGID 00858" (text). IBM. Retrieved 2022-01-28.