Windows codepages (and their history)

Windows supports a number of character sets besides Unicode. The character sets are also known as ANSI codepages, even though they are not based on any ANSI standard. This article presents the current and historical versions of Windows codepages starting from 1985.

This article is intended for computing experts who already know what character sets and codepages are. We compare codepages to other codepages. We check out different versions that have appeared of the same codepage. We first check out the Windows ANSI character set, which actually was no ANSI at all, and see how it developed from 1985 onwards. We find differences in documented and actual behavior and point out codepage related errors in MSDN.

See also: Character setsDOS codepages (and their history)

Contents

Windows codepages

The first version of Microsoft Windows, released in 1985, came with a single character set. It was known as the Windows ANSI character set. This character set was quite different from the character set of DOS, the 437. The most notable difference was with line drawing characters, which are missing in Windows.

Since then, more character sets have appeared. Today Windows comes with a number of code pages. Most of the codepages are different those of DOS, but they serve a similar purpose. The following codepages have been available since the 1990s:

PageName
874Thai
932†Japan
936†Chinese (PRC, Singapore)
949†Korean
950†Chinese (Taiwan, Hong Kong)
1250Eastern European (Latin 2)
1251Cyrillic
1252Latin 1 (US, Western Europe)
1253Greek
1254Turkish
1255Hebrew
1256Arabic
1257Baltic
1258Vietnam
1361Korean (Johab)

† "Windows ANSI and OEM" codepage (used both in DOS and Windows).

The Far-Eastern codepages 932, 936, 949, 950 and 1361 are double byte character sets (DBCS) while the rest are single byte character sets (SBCS). The rest of this article focuses on the single byte sets.

Windows ANSI (Latin 1)

The Windows ANSI character set first appeared in Windows 1.0 in 1985. Despite its name, Windows ANSI was not actually based on any published ANSI standard. The first version of Windows ANSI was identical to ECMA-94 8-Bit Single-Byte Coded Graphic Character Set, which was also published in 1985. The characters of ECMA-94 found themselves into ISO 8859-1 and eventually to Unicode.

Windows ANSI went its own way. More characters were soon added by newer versions of Windows. In addition to the original "ANSI" character set, Windows started supporting other character sets too. Windows ANSI became known as Windows Latin I, which covered letters used in USA and Western Europe. Other codepages were defined to support other regions and languages.

History of Windows ANSI
Windows 1.0The same characters as in ISO 8859-1, except × and ÷ missing
Windows 2.0Added the missing × and ÷ and also single quotes ‘ ’
Windows 3.0No changes
Windows 3.1Added 22 new characters to range 82-9F
Windows 95, NT4Originally the same character set as in Windows 3.1. Support for €, Ž and ž was added in 1998.
Windows 98Added €, Ž and ž.

Windows ANSI codepage charts

In the following codepage charts, a gray cell means a reserved (unused) character position. Green cells indicate added characters. The ASCII control character area (00–1F hex) has been left out. The pinkish gray cell 7F is reserved for the DEL control character. Hover the mouse pointer over a cell to display the respective Unicode value.

Windows 1.0 – Original Windows ANSI character set
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° À Ð à ð
-1 ! 1 A Q a q ¡ ± Á Ñ á ñ
-2 " 2 B R b r ¢ ² Â Ò â ò
-3 # 3 C S c s £ ³ Ã Ó ã ó
-4 $ 4 D T d t ¤ ´ Ä Ô ä ô
-5 % 5 E U e u ¥ µ Å Õ å õ
-6 & 6 F V f v ¦ Æ Ö æ ö
-7 ' 7 G W g w § · Ç ç
-8 ( 8 H X h x ¨ ¸ È Ø è ø
-9 ) 9 I Y i y © ¹ É Ù é ù
-A * : J Z j z ª º Ê Ú ê ú
-B + ; K [ k { « » Ë Û ë û
-C , < L \ l | ¬ ¼ Ì Ü ì ü
-D - = M ] m } - ½ Í Ý í ý
-E . > N ^ n ~ ® ¾ Î Þ î þ
-F / ? O _ o ¯ ¿ Ï ß ï ÿ

This is the original version of the Windows ANSI character set. The only difference to ISO 8859-1 were the missing × and ÷.

Windows 2.0 and 3.0 – Updated Windows ANSI character set
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° À Ð à ð
-1 ! 1 A Q a q ¡ ± Á Ñ á ñ
-2 " 2 B R b r ¢ ² Â Ò â ò
-3 # 3 C S c s £ ³ Ã Ó ã ó
-4 $ 4 D T d t ¤ ´ Ä Ô ä ô
-5 % 5 E U e u ¥ µ Å Õ å õ
-6 & 6 F V f v ¦ Æ Ö æ ö
-7 ' 7 G W g w § · Ç × ç ÷
-8 ( 8 H X h x ¨ ¸ È Ø è ø
-9 ) 9 I Y i y © ¹ É Ù é ù
-A * : J Z j z ª º Ê Ú ê ú
-B + ; K [ k { « » Ë Û ë û
-C , < L \ l | ¬ ¼ Ì Ü ì ü
-D - = M ] m } - ½ Í Ý í ý
-E . > N ^ n ~ ® ¾ Î Þ î þ
-F / ? O _ o ¯ ¿ Ï ß ï ÿ

An updated version of the Windows ANSI character set appeared in Windows 2.0. It added the missing × and ÷ and also single quotes ‘ ’. Some sources refer to this character set as codepage 1004. IBM codepage 1004 is a superset of this set.

Windows 3.1, Win95, WinNT4 – Original codepage 1252
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° À Ð à ð
-1 ! 1 A Q a q ¡ ± Á Ñ á ñ
-2 " 2 B R b r ¢ ² Â Ò â ò
-3 # 3 C S c s ƒ £ ³ Ã Ó ã ó
-4 $ 4 D T d t ¤ ´ Ä Ô ä ô
-5 % 5 E U e u ¥ µ Å Õ å õ
-6 & 6 F V f v ¦ Æ Ö æ ö
-7 ' 7 G W g w § · Ç × ç ÷
-8 ( 8 H X h x ˆ ˜ ¨ ¸ È Ø è ø
-9 ) 9 I Y i y © ¹ É Ù é ù
-A * : J Z j z Š š ª º Ê Ú ê ú
-B + ; K [ k { « » Ë Û ë û
-C , < L \ l | Œ œ ¬ ¼ Ì Ü ì ü
-D - = M ] m } - ½ Í Ý í ý
-E . > N ^ n ~ ® ¾ Î Þ î þ
-F / ? O _ o Ÿ ¯ ¿ Ï ß ï ÿ

Windows 3.1 added 22 new characters to the Windows ANSI character set. According Windows 3.1 SDK, this set was "sometimes referred to as codepage 1007".

The first versions of Windows 95 and NT4 used this same codepage as well. The page was no longer known as 1007, but 1252. A probable reason for the renumbering is that alternative codepages became available, which were numbered 125x. This codepage was part of the series.

Windows 98 and later – Updated codepage 1252
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° À Ð à ð
-1 ! 1 A Q a q ¡ ± Á Ñ á ñ
-2 " 2 B R b r ¢ ² Â Ò â ò
-3 # 3 C S c s ƒ £ ³ Ã Ó ã ó
-4 $ 4 D T d t ¤ ´ Ä Ô ä ô
-5 % 5 E U e u ¥ µ Å Õ å õ
-6 & 6 F V f v ¦ Æ Ö æ ö
-7 ' 7 G W g w § · Ç × ç ÷
-8 ( 8 H X h x ˆ ˜ ¨ ¸ È Ø è ø
-9 ) 9 I Y i y © ¹ É Ù é ù
-A * : J Z j z Š š ª º Ê Ú ê ú
-B + ; K [ k { « » Ë Û ë û
-C , < L \ l | Œ œ ¬ ¼ Ì Ü ì ü
-D - = M ] m } - ½ Í Ý í ý
-E . > N ^ n ~ Ž ž ® ¾ Î Þ î þ
-F / ? O _ o Ÿ ¯ ¿ Ï ß ï ÿ

In 1998, codepage 1252 was updated to include 3 new characters: €, Ž and ž. This is the current version of codepage 1252. The first operating system to use this character set was Windows 98.

Windows 95 and NT4 originally used the same codepage as Windows 3.1. In 1998, an update became available that added the euro (€) to 1252. Apparently, Žž were added at the same time (definite source not found). Prior to applying the update, even when a font included these characters, the characters didn't display properly on codepage 1252.

ISO 8859-1
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° À Ð à ð
-1 ! 1 A Q a q ¡ ± Á Ñ á ñ
-2 " 2 B R b r ¢ ² Â Ò â ò
-3 # 3 C S c s £ ³ Ã Ó ã ó
-4 $ 4 D T d t ¤ ´ Ä Ô ä ô
-5 % 5 E U e u ¥ µ Å Õ å õ
-6 & 6 F V f v ¦ Æ Ö æ ö
-7 ' 7 G W g w § · Ç × ç ÷
-8 ( 8 H X h x ¨ ¸ È Ø è ø
-9 ) 9 I Y i y © ¹ É Ù é ù
-A * : J Z j z ª º Ê Ú ê ú
-B + ; K [ k { « » Ë Û ë û
-C , < L \ l | ¬ ¼ Ì Ü ì ü
-D - = M ] m } - ½ Í Ý í ý
-E . > N ^ n ~ ® ¾ Î Þ î þ
-F / ? O _ o ¯ ¿ Ï ß ï ÿ

This is the ISO standard Latin-1 character set (ISO 8859-1). The gray area, positions 7F to 9F, is reserved for control characters. The actual control characters, which are rarely used, are not part of ISO 8859-1.

National codepages (SBCS)

Originally, Windows ANSI was the only available codepage on Windows. By the mid-1990s, a range of national codepages had appeared. Both single byte character sets (SBCS) and double byte character sets (DBCS) for Far-Eastern languages appeared. The following discussion is about the SBCS sets, which cover the Latin, Greek, Cyrillic, Hebrew and Arabic scripts.

The codepages were unstable at first. Several versions have existed as missing characters were added. All codepages were updated in 1998, when the euro symbol (€) was added, along with some additional characters. The last update was to 1256 Arabic in Windows 2000. After that the codepages have been completely stable.

Appearance of national codepages in non-English Windows

Non-English language versions of Windows have supported some codepages already before they appeared in the English versions. According to IANA charset registrations made by Microsoft in May 1996, Windows character sets then appeared as follows:

CharsetWindows versions where appeared by May 1996
874ThaiNot registered (but probably exists since Win 3.0 or 3.1 Thai edition)
1250Eastern European3.1 and 3.11 (Hungarian, Czech, Polish, Central and Eastern European),
95 (Hungarian, Czech, Polish, Pan European), NT 3.5/3.51
1251Cyrillic3.1 and 3.11 (Russian, Central and Eastern European),
95 (Russian, Pan European), NT 3.5/3.51
1253Greek3.11 (Greek), 95 (Greek, Pan European), NT 3.5/3.51
1254Turkish95 (Turkish, Pan European), NT 3.5/3.51
1255Hebrew3.11 and 95 (Hebrew)
1256Arabic3.1 and 3.11 (Arabic)
1257Baltic95 (Pan European)
1258VietnamRegistered, no Windows version mentioned (but exists in Win95, apparently Vietnamese edition)

Note that the IANA information predates the release of Windows NT4. For some reason, codepage 874 was not registered with IANA, even though it was in use.

Appearance of national codepages in English Windows

The following development appeared in the English versions of Windows:

  • 1991: Windows 3.1 did not support codepages. One installation supported one character set only. Windows 3.1 came in several language versions, and the different language versions supported different character sets. These sets are the predecessors of codepages (apparently 1250–1256). The Windows ANSI character set, the predecessor of 1252, was among these sets.
  • 1995: Windows 95 came with codepage support. The English version supported 1252 only. Other language versions supported others.
  • 1996: Windows NT4 (English version) supported codepages 1250, 1251, 1252, 1253, 1254, 1255, 1256 and 1257, but not 1258 or 874.
  • 1998: A euro update was released for Windows NT4. It updated pages 1250, 1251, 1252, 1253, 1254, 1255, 1256 and 1257 by adding one or more missing characters. This update was later added to NT4 Service Packs.
  • 1999: Windows 98 (SE, English version) supported the following codepages, exactly similar to the 1998 euro updated versions: 1250, 1251, 1252, 1253, 1254, 1257. The English version did not support codepage 1255, 1256, 1258 or 874.
  • 2000: Windows 2000 (English version) came with the 1998 euro updated codepages 1250, 1251, 1252, 1253, 1254, 1255, 1257 and also 1258. Codepage 1256 Arabic had been updated again. Codepage 874 Thai had been added.
  • 2001: Windows XP (English version) supported the same codepages as Windows 2000.

National codepage charts (SBCS)

The following codepage charts list the development of the Windows single byte character sets (SBCS). Far-Eastern double byte sets have been left out. The charts are based on the actual operation of the English versions of Windows NT4, 98, 2000, XP and 7. Comparison has been made with documented behavior, primarily with Unicode vendor mapping tables and Nadine Kano's Developing International Software for Windows 95 and Windows NT (Microsoft Press, 1995).

The charts focus on visible (graphic) characters. The ASCII control character area (00–1F hex) has been left out on purpose.

Legend. Blueish cells indicate characters different from those of codepage 1252 (current version). A gray cell means a reserved character position. Pinkish gray cells are invisible control characters. Green cells are characters that were added or modified since the previous version of the same codepage. "Original" codepages are as they appeared in 1991.

Hover the mouse pointer over a cell to display the respective Unicode value.

1250 Eastern European (original)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° Ŕ Đ ŕ đ
-1 ! 1 A Q a q ˇ ± Á Ń á ń
-2 " 2 B R b r ˘ ˛ Â Ň â ň
-3 # 3 C S c s Ł ł Ă Ó ă ó
-4 $ 4 D T d t ¤ ´ Ä Ô ä ô
-5 % 5 E U e u Ą µ Ĺ Ő ĺ ő
-6 & 6 F V f v ¦ Ć Ö ć ö
-7 ' 7 G W g w § · Ç × ç ÷
-8 ( 8 H X h x ¨ ¸ Č Ř č ř
-9 ) 9 I Y i y © ą É Ů é ů
-A * : J Z j z Š š Ş ş Ę Ú ę ú
-B + ; K [ k { « » Ë Ű ë ű
-C , < L \ l | Ś ś ¬ Ľ Ě Ü ě ü
-D - = M ] m } Ť ť - ˝ Í Ý í ý
-E . > N ^ n ~ Ž ž ® ľ Î Ţ î ţ
-F / ? O _ o Ź ź Ż ż Ď ß ď ˙

Sources:

1250 Eastern European (1998 update)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° Ŕ Đ ŕ đ
-1 ! 1 A Q a q ˇ ± Á Ń á ń
-2 " 2 B R b r ˘ ˛ Â Ň â ň
-3 # 3 C S c s Ł ł Ă Ó ă ó
-4 $ 4 D T d t ¤ ´ Ä Ô ä ô
-5 % 5 E U e u Ą µ Ĺ Ő ĺ ő
-6 & 6 F V f v ¦ Ć Ö ć ö
-7 ' 7 G W g w § · Ç × ç ÷
-8 ( 8 H X h x ¨ ¸ Č Ř č ř
-9 ) 9 I Y i y © ą É Ů é ů
-A * : J Z j z Š š Ş ş Ę Ú ę ú
-B + ; K [ k { « » Ë Ű ë ű
-C , < L \ l | Ś ś ¬ Ľ Ě Ü ě ü
-D - = M ] m } Ť ť - ˝ Í Ý í ý
-E . > N ^ n ~ Ž ž ® ľ Î Ţ î ţ
-F / ? O _ o Ź ź Ż ż Ď ß ď ˙

Sources:

  • WinNT4 SP6, Win98 SE, Win2000 SP4, WinXP, Win7
  • cp1250 to Unicode table v2.01, 04/15/98
1251 Cyrillic (original)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p Ђ ђ   ° А Р а р
-1 ! 1 A Q a q Ѓ Ў ± Б С б с
-2 " 2 B R b r ў І В Т в т
-3 # 3 C S c s ѓ Ј і Г У г у
-4 $ 4 D T d t ¤ ґ Д Ф д ф
-5 % 5 E U e u Ґ µ Е Х е х
-6 & 6 F V f v ¦ Ж Ц ж ц
-7 ' 7 G W g w § · З Ч з ч
-8 ( 8 H X h x Ё ё И Ш и ш
-9 ) 9 I Y i y © Й Щ й щ
-A * : J Z j z Љ љ Є є К Ъ к ъ
-B + ; K [ k { « » Л Ы л ы
-C , < L \ l | Њ њ ¬ ј М Ь м ь
-D - = M ] m } Ќ ќ - Ѕ Н Э н э
-E . > N ^ n ~ Ћ ћ ® ѕ О Ю о ю
-F / ? O _ o Џ џ Ї ї П Я п я

Sources:

1251 Cyrillic (1998 update)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p Ђ ђ   ° А Р а р
-1 ! 1 A Q a q Ѓ Ў ± Б С б с
-2 " 2 B R b r ў І В Т в т
-3 # 3 C S c s ѓ Ј і Г У г у
-4 $ 4 D T d t ¤ ґ Д Ф д ф
-5 % 5 E U e u Ґ µ Е Х е х
-6 & 6 F V f v ¦ Ж Ц ж ц
-7 ' 7 G W g w § · З Ч з ч
-8 ( 8 H X h x Ё ё И Ш и ш
-9 ) 9 I Y i y © Й Щ й щ
-A * : J Z j z Љ љ Є є К Ъ к ъ
-B + ; K [ k { « » Л Ы л ы
-C , < L \ l | Њ њ ¬ ј М Ь м ь
-D - = M ] m } Ќ ќ - Ѕ Н Э н э
-E . > N ^ n ~ Ћ ћ ® ѕ О Ю о ю
-F / ? O _ o Џ џ Ї ї П Я п я

Sources:

  • WinNT4 SP6, Win98 SE, Win2000 SP4, WinXP, Win7
  • cp1251 to Unicode table v2.01, 04/15/98
1253 Greek (original)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° ΐ Π ΰ π
-1 ! 1 A Q a q ΅ ± Α Ρ α ρ
-2 " 2 B R b r Ά ² Β β ς
-3 # 3 C S c s ƒ £ ³ Γ Σ γ σ
-4 $ 4 D T d t ¤ ΄ Δ Τ δ τ
-5 % 5 E U e u ¥ µ Ε Υ ε υ
-6 & 6 F V f v ¦ Ζ Φ ζ φ
-7 ' 7 G W g w § · Η Χ η χ
-8 ( 8 H X h x ¨ Έ Θ Ψ θ ψ
-9 ) 9 I Y i y © Ή Ι Ω ι ω
-A * : J Z j z Ί Κ Ϊ κ ϊ
-B + ; K [ k { « » Λ Ϋ λ ϋ
-C , < L \ l | ¬ Ό Μ ά μ ό
-D - = M ] m } - ½ Ν έ ν ύ
-E . > N ^ n ~ ® Ύ Ξ ή ξ ώ
-F / ? O _ o Ώ Ο ί ο

Sources:

Developing International Software lists AA as Feminine Ordinal Indicator (ª), but this appears incorrect.

1253 Greek (1998 update)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° ΐ Π ΰ π
-1 ! 1 A Q a q ΅ ± Α Ρ α ρ
-2 " 2 B R b r Ά ² Β β ς
-3 # 3 C S c s ƒ £ ³ Γ Σ γ σ
-4 $ 4 D T d t ¤ ΄ Δ Τ δ τ
-5 % 5 E U e u ¥ µ Ε Υ ε υ
-6 & 6 F V f v ¦ Ζ Φ ζ φ
-7 ' 7 G W g w § · Η Χ η χ
-8 ( 8 H X h x ¨ Έ Θ Ψ θ ψ
-9 ) 9 I Y i y © Ή Ι Ω ι ω
-A * : J Z j z Ί Κ Ϊ κ ϊ
-B + ; K [ k { « » Λ Ϋ λ ϋ
-C , < L \ l | ¬ Ό Μ ά μ ό
-D - = M ] m } - ½ Ν έ ν ύ
-E . > N ^ n ~ ® Ύ Ξ ή ξ ώ
-F / ? O _ o Ώ Ο ί ο

Sources:

  • WinNT4 SP6, Win98 SE, Win2000 SP4, WinXP, Win7
  • cp1253 to Unicode table v2.01, 04/15/98
1254 Turkish (original)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° À Ğ à ğ
-1 ! 1 A Q a q ¡ ± Á Ñ á ñ
-2 " 2 B R b r ¢ ² Â Ò â ò
-3 # 3 C S c s ƒ £ ³ Ã Ó ã ó
-4 $ 4 D T d t ¤ ´ Ä Ô ä ô
-5 % 5 E U e u ¥ µ Å Õ å õ
-6 & 6 F V f v ¦ Æ Ö æ ö
-7 ' 7 G W g w § · Ç × ç ÷
-8 ( 8 H X h x ˆ ˜ ¨ ¸ È Ø è ø
-9 ) 9 I Y i y © ¹ É Ù é ù
-A * : J Z j z Š š ª º Ê Ú ê ú
-B + ; K [ k { « » Ë Û ë û
-C , < L \ l | Œ œ ¬ ¼ Ì Ü ì ü
-D - = M ] m } - ½ Í İ í ı
-E . > N ^ n ~ ® ¾ Î Ş î ş
-F / ? O _ o Ÿ ¯ ¿ Ï ß ï ÿ

Sources:

1254 Turkish (1998 update)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° À Ğ à ğ
-1 ! 1 A Q a q ¡ ± Á Ñ á ñ
-2 " 2 B R b r ¢ ² Â Ò â ò
-3 # 3 C S c s ƒ £ ³ Ã Ó ã ó
-4 $ 4 D T d t ¤ ´ Ä Ô ä ô
-5 % 5 E U e u ¥ µ Å Õ å õ
-6 & 6 F V f v ¦ Æ Ö æ ö
-7 ' 7 G W g w § · Ç × ç ÷
-8 ( 8 H X h x ˆ ˜ ¨ ¸ È Ø è ø
-9 ) 9 I Y i y © ¹ É Ù é ù
-A * : J Z j z Š š ª º Ê Ú ê ú
-B + ; K [ k { « » Ë Û ë û
-C , < L \ l | Œ œ ¬ ¼ Ì Ü ì ü
-D - = M ] m } - ½ Í İ í ı
-E . > N ^ n ~ ® ¾ Î Ş î ş
-F / ? O _ o Ÿ ¯ ¿ Ï ß ï ÿ

Sources:

  • WinNT4 SP6, Win98 SE, Win2000 SP4, WinXP, Win7
  • cp1254 to Unicode table v2.01, 04/15/98
1255 Hebrew (1991)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° א נ
-1 ! 1 A Q a q ± ב ס
-2 " 2 B R b r ¢ ² ג ע
-3 # 3 C S c s ƒ £ ³ ד ף
-4 $ 4 D T d t ¤ ´ ה פ
-5 % 5 E U e u ¥ µ ו ץ
-6 & 6 F V f v ¦ ז צ
-7 ' 7 G W g w § · ח ק
-8 ( 8 H X h x ¨ ¸ ט ר
-9 ) 9 I Y i y © ¹ י ש
-A * : J Z j z × ÷ ך ת
-B + ; K [ k { « » כ
-C , < L \ l | ¬ ¼ ל
-D - = M ] m } - ½ ם
-E . > N ^ n ~ ® ¾ מ
-F / ? O _ o ¯ ן

Source:

1255 Hebrew (1992)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° ְ ׀ א נ
-1 ! 1 A Q a q ¡ ± ֱ ׁ ב ס
-2 " 2 B R b r ¢ ² ֲ ׂ ג ע
-3 # 3 C S c s ƒ £ ³ ֳ ׃ ד ף
-4 $ 4 D T d t ¤ ´ ִ ה פ
-5 % 5 E U e u ¥ µ ֵ ו ץ
-6 & 6 F V f v ¦ ֶ ז צ
-7 ' 7 G W g w § · ַ ח ק
-8 ( 8 H X h x ˆ ˜ ¨ ¸ ָ ט ר
-9 ) 9 I Y i y © ¹ ֹ י ש
-A * : J Z j z × ÷ ך ת
-B + ; K [ k { « » ֻ כ
-C , < L \ l | ¬ ¼ ּ ל
-D - = M ] m } - ½ ֽ ם
-E . > N ^ n ~ ® ¾ ־ מ
-F / ? O _ o ¯ ¿ ֿ ן

Source:

Double underscore (position DF) has been removed.

1255 Hebrew (1995)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° ְ ׀ א נ
-1 ! 1 A Q a q ± ֱ ׁ ב ס
-2 " 2 B R b r ¢ ² ֲ ׂ ג ע
-3 # 3 C S c s ƒ £ ³ ֳ ׃ ד ף
-4 $ 4 D T d t ´ ִ װ ה פ
-5 % 5 E U e u ¥ µ ֵ ױ ו ץ
-6 & 6 F V f v ¦ ֶ ײ ז צ
-7 ' 7 G W g w § · ַ ח ק
-8 ( 8 H X h x ˆ ˜ ¨ ָ ט ר
-9 ) 9 I Y i y © ¹ ֹ י ש
-A * : J Z j z ך ת
-B + ; K [ k { « » ֻ כ
-C , < L \ l | ¬ ¼ ּ ל
-D - = M ] m } - ½ ֽ ם
-E . > N ^ n ~ ® ¾ ־ מ
-F / ? O _ o ¯ ֿ ן

Sources:

Characters ¡¿×÷¸ no longer appear in the chart, even though they will reappear later.

1255 Hebrew (WinNT4 English)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° ְ ׀ א נ
-1 ! 1 A Q a q ¡ ± ֱ ׁ ב ס
-2 " 2 B R b r ¢ ² ֲ ׂ ג ע
-3 # 3 C S c s ƒ £ ³ ֳ ׃ ד ף
-4 $ 4 D T d t ¤ ´ ִ Ô ה פ
-5 % 5 E U e u ¥ µ ֵ Õ ו ץ
-6 & 6 F V f v ¦ ֶ Ö ז צ
-7 ' 7 G W g w § · ַ × ח ק
-8 ( 8 H X h x ˆ ˜ ¨ ָ Ø ט ר
-9 ) 9 I Y i y © ¹ ֹ י ש
-A * : J Z j z × ֺ ך ת
-B + ; K [ k { « » ֻ כ
-C , < L \ l | ¬ ¼ ּ ל
-D - = M ] m } - ½ ֽ ם
-E . > N ^ n ~ ® ¾ ־ מ
-F / ? O _ o ¯ ֿ ן

Source:

  • WinNT4 (English version)

Difference in documented and actual behavior (NT4 English version): Positions A4 (¤) and D4..D8 look like a bug. Positions AA and CA were to be reserved but are in use.

1255 Hebrew (1998 update)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° ְ ׀ א נ
-1 ! 1 A Q a q ¡ ± ֱ ׁ ב ס
-2 " 2 B R b r ¢ ² ֲ ׂ ג ע
-3 # 3 C S c s ƒ £ ³ ֳ ׃ ד ף
-4 $ 4 D T d t ´ ִ װ ה פ
-5 % 5 E U e u ¥ µ ֵ ױ ו ץ
-6 & 6 F V f v ¦ ֶ ײ ז צ
-7 ' 7 G W g w § · ַ ׳ ח ק
-8 ( 8 H X h x ˆ ˜ ¨ ¸ ָ ״ ט ר
-9 ) 9 I Y i y © ¹ ֹ י ש
-A * : J Z j z × ÷ ֺ ך ת
-B + ; K [ k { « » ֻ כ
-C , < L \ l | ¬ ¼ ּ ל
-D - = M ] m } - ½ ֽ ם
-E . > N ^ n ~ ® ¾ ־ מ
-F / ? O _ o ¯ ¿ ֿ ן

Source:

  • WinNT4 SP6, Win98 SE (Hebrew), Win2000 SP4, WinXP, Win7

The 1998 update is a combination of the 1992 and 1995 documented versions, with the euro symbol added.

Position CA (hex) differs in documentation and implementation. According to Microsoft documentation (MSDN 2012 and cp1255 to Unicode table v2.0, 04/15/98), position CA (hex) is reserved. Windows, however, has U+05BA HEBREW POINT HOLAM HASER FOR VAV at this position. Windows 98 SE (Hebrew version) also had it, even though its fonts did not have a glyph for it. This is a rare character that was added Unicode 5.0 only in 2006. The character made its way to Windows implementations, but not to their documentation.

1256 Arabic (1992)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° ذ à ً
-1 ! 1 A Q a q ، ± ء ر ل ٌ
-2 " 2 B R b r ¢ ² آ ز â ٍ
-3 # 3 C S c s ƒ £ ³ أ س م َ
-4 $ 4 D T d t ¤ ´ ؤ ش ن ô
-5 % 5 E U e u ¥ µ إ ص ه ُ
-6 & 6 F V f v ¦ ئ ض و ِ
-7 ' 7 G W g w § · ا × ç ÷
-8 ( 8 H X h x ˆ ¨ ¸ ب ط è ّ
-9 ) 9 I Y i y © ¹ ة ظ é ù
-A * : J Z j z ؛ ت ع ê ْ
-B + ; K [ k { « » ث غ ë û
-C , < L \ l | Œ œ ¬ ¼ ج ـ ى ü
-D - = M ] m } - ½ ح ف ي
-E . > N ^ n ~ ® ¾ خ ق î
-F / ? O _ o ¯ ؟ د ك ï

Source:

1256 Arabic (1995)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p گ   ° ذ à ً
-1 ! 1 A Q a q پ ، ± ء ر ل ٌ
-2 " 2 B R b r ¢ ² آ ز â ٍ
-3 # 3 C S c s ƒ £ ³ أ س م َ
-4 $ 4 D T d t ¤ ´ ؤ ش ن ô
-5 % 5 E U e u ¥ µ إ ص ه ُ
-6 & 6 F V f v ¦ ئ ض و ِ
-7 ' 7 G W g w § · ا × ç ÷
-8 ( 8 H X h x ˆ ¨ ¸ ب ط è ّ
-9 ) 9 I Y i y © ¹ ة ظ é ù
-A * : J Z j z ؛ ت ع ê ْ
-B + ; K [ k { « » ث غ ë û
-C , < L \ l | Œ œ ¬ ¼ ج ـ ى ü
-D - = M ] m } چ - ½ ح ف ي
-E . > N ^ n ~ ژ ® ¾ خ ق î
-F / ? O _ o ¯ ؟ د ك ï

Sources:

1256 Arabic (1998 update)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p گ   ° ذ à ً
-1 ! 1 A Q a q پ ، ± ء ر ل ٌ
-2 " 2 B R b r ¢ ² آ ز â ٍ
-3 # 3 C S c s ƒ £ ³ أ س م َ
-4 $ 4 D T d t ¤ ´ ؤ ش ن ô
-5 % 5 E U e u ¥ µ إ ص ه ُ
-6 & 6 F V f v ¦ ئ ض و ِ
-7 ' 7 G W g w § · ا × ç ÷
-8 ( 8 H X h x ˆ ¨ ¸ ب ط è ّ
-9 ) 9 I Y i y © ¹ ة ظ é ù
-A * : J Z j z ؛ ت ع ê ْ
-B + ; K [ k { « » ث غ ë û
-C , < L \ l | Œ œ ¬ ¼ ج ـ ى ü
-D - = M ] m } چ - ½ ح ف ي
-E . > N ^ n ~ ژ ® ¾ خ ق î
-F / ? O _ o ¯ ؟ د ك ï

Sources:

  • WinNT4 SP6, Win98 SE (Arabic)
  • cp1256 to Unicode table v2.00, 04/15/98
1256 Arabic (2000 update)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p گ   ° ہ ذ à ً
-1 ! 1 A Q a q پ ، ± ء ر ل ٌ
-2 " 2 B R b r ¢ ² آ ز â ٍ
-3 # 3 C S c s ƒ £ ³ أ س م َ
-4 $ 4 D T d t ¤ ´ ؤ ش ن ô
-5 % 5 E U e u ¥ µ إ ص ه ُ
-6 & 6 F V f v ¦ ئ ض و ِ
-7 ' 7 G W g w § · ا × ç ÷
-8 ( 8 H X h x ˆ ک ¨ ¸ ب ط è ّ
-9 ) 9 I Y i y © ¹ ة ظ é ù
-A * : J Z j z ٹ ڑ ھ ؛ ت ع ê ْ
-B + ; K [ k { « » ث غ ë û
-C , < L \ l | Œ œ ¬ ¼ ج ـ ى ü
-D - = M ] m } چ - ½ ح ف ي
-E . > N ^ n ~ ژ ® ¾ خ ق î
-F / ? O _ o ڈ ں ¯ ؟ د ك ï ے

Sources:

  • Win2000 SP4, WinXP, Win7
  • cp1256 to Unicode table v2.01, 01/5/99
1257 Baltic (1995 documented)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° Ą Š ą š
-1 ! 1 A Q a q ˇ ± Į Ń į ń
-2 " 2 B R b r ˘ ² Ā Ņ ā ņ
-3 # 3 C S c s £ ³ Ć Ó ć ó
-4 $ 4 D T d t ¤ ´ Ä Ō ä ō
-5 % 5 E U e u µ Å Õ å õ
-6 & 6 F V f v ¦ Ę Ö ę ö
-7 ' 7 G W g w § · Ē × ē ÷
-8 ( 8 H X h x Ø ø Č Ų č ų
-9 ) 9 I Y i y © ¹ É Ł é ł
-A * : J Z j z Ŗ ŗ Ź Ś ź ś
-B + ; K [ k { « » Ė Ū ė ū
-C , < L \ l | ¬ ¼ Ģ Ü ģ ü
-D - = M ] m } - ½ Ķ Ż ķ ż
-E . > N ^ n ~ ® ¾ Ī Ž ī ž
-F / ? O _ o Æ æ Ļ ß ļ ˙

Source:

This table differs from later tables. A1 was Caron/Hacek (later 8E), A2 was Breve (missing later). It remains unclear if this table is erroneous or if it has been in actual use.

1257 Baltic (1995)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° Ą Š ą š
-1 ! 1 A Q a q ± Į Ń į ń
-2 " 2 B R b r ¢ ² Ā Ņ ā ņ
-3 # 3 C S c s £ ³ Ć Ó ć ó
-4 $ 4 D T d t ¤ ´ Ä Ō ä ō
-5 % 5 E U e u µ Å Õ å õ
-6 & 6 F V f v ¦ Ę Ö ę ö
-7 ' 7 G W g w § · Ē × ē ÷
-8 ( 8 H X h x Ø ø Č Ų č ų
-9 ) 9 I Y i y © ¹ É Ł é ł
-A * : J Z j z Ŗ ŗ Ź Ś ź ś
-B + ; K [ k { « » Ė Ū ė ū
-C , < L \ l | ¬ ¼ Ģ Ü ģ ü
-D - = M ] m } ¨ ¯ - ½ Ķ Ż ķ ż
-E . > N ^ n ~ ˇ ˛ ® ¾ Ī Ž ī ž
-F / ? O _ o ¸ Æ æ Ļ ß ļ ˙

Sources:

  • WinNT4
  • cp1257_WinBaltic to Unicode table v1.1, 03/31/95
1257 Baltic (1998 update)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° Ą Š ą š
-1 ! 1 A Q a q ± Į Ń į ń
-2 " 2 B R b r ¢ ² Ā Ņ ā ņ
-3 # 3 C S c s £ ³ Ć Ó ć ó
-4 $ 4 D T d t ¤ ´ Ä Ō ä ō
-5 % 5 E U e u µ Å Õ å õ
-6 & 6 F V f v ¦ Ę Ö ę ö
-7 ' 7 G W g w § · Ē × ē ÷
-8 ( 8 H X h x Ø ø Č Ų č ų
-9 ) 9 I Y i y © ¹ É Ł é ł
-A * : J Z j z Ŗ ŗ Ź Ś ź ś
-B + ; K [ k { « » Ė Ū ė ū
-C , < L \ l | ¬ ¼ Ģ Ü ģ ü
-D - = M ] m } ¨ ¯ - ½ Ķ Ż ķ ż
-E . > N ^ n ~ ˇ ˛ ® ¾ Ī Ž ī ž
-F / ? O _ o ¸ Æ æ Ļ ß ļ ˙

Sources:

  • WinNT4 SP6, Win98 SE, Win2000 SP4, WinXP, Win7
  • cp1257 to Unicode table v2.01, 04/15/98
1258 Vietnam (1996)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° À Đ à đ
-1 ! 1 A Q a q ¡ ± Á Ñ á ñ
-2 " 2 B R b r ¢ ² Â ̉ â ̣
-3 # 3 C S c s ƒ £ ³ Ă Ó ă ó
-4 $ 4 D T d t ¤ ´ Ä Ô ä ô
-5 % 5 E U e u ¥ µ Å Ơ å ơ
-6 & 6 F V f v ¦ Æ Ö æ ö
-7 ' 7 G W g w § · Ç × ç ÷
-8 ( 8 H X h x ˆ ˜ ¨ ¸ È Ø è ø
-9 ) 9 I Y i y © ¹ É Ù é ù
-A * : J Z j z ª º Ê Ú ê ú
-B + ; K [ k { « » Ë Û ë û
-C , < L \ l | Œ œ ¬ ¼ ̀ Ü ́ ü
-D - = M ] m } - ½ Í Ư í ư
-E . > N ^ n ~ ® ¾ Î ̃ î
-F / ? O _ o Ÿ ¯ ¿ Ï ß ï ÿ

Source:

  • cp1258_WinVietnamese to Unicode table v1.1, 03/19/96
1258 Vietnam (1998 update)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p   ° À Đ à đ
-1 ! 1 A Q a q ¡ ± Á Ñ á ñ
-2 " 2 B R b r ¢ ² Â ̉ â ̣
-3 # 3 C S c s ƒ £ ³ Ă Ó ă ó
-4 $ 4 D T d t ¤ ´ Ä Ô ä ô
-5 % 5 E U e u ¥ µ Å Ơ å ơ
-6 & 6 F V f v ¦ Æ Ö æ ö
-7 ' 7 G W g w § · Ç × ç ÷
-8 ( 8 H X h x ˆ ˜ ¨ ¸ È Ø è ø
-9 ) 9 I Y i y © ¹ É Ù é ù
-A * : J Z j z ª º Ê Ú ê ú
-B + ; K [ k { « » Ë Û ë û
-C , < L \ l | Œ œ ¬ ¼ ̀ Ü ́ ü
-D - = M ] m } - ½ Í Ư í ư
-E . > N ^ n ~ ® ¾ Î ̃ î
-F / ? O _ o Ÿ ¯ ¿ Ï ß ï ÿ

Sources:

  • WinNT4 SP6, Win2000 SP4, WinXP, Win7
  • cp1258 to Unicode table v2.01, 04/15/98

The Unicode mapping of CC and EC has changed from 1996.

874 Thai (1995 DOSThai)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p  
-1 ! 1 A Q a q
-2 " 2 B R b r
-3 # 3 C S c s
-4 $ 4 D T d t
-5 % 5 E U e u
-6 & 6 F V f v
-7 ' 7 G W g w
-8 ( 8 H X h x
-9 ) 9 I Y i y
-A * : J Z j z
-B + ; K [ k {
-C , < L \ l |
-D - = M ] m }
-E . > N ^ n ~
-F / ? O _ o ฿

Source:

  • cp874_DOSThai to Unicode table v1.1, 03/31/95
874 Thai (1998 update)
20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
-0 0 @ P ` p  
-1 ! 1 A Q a q
-2 " 2 B R b r
-3 # 3 C S c s
-4 $ 4 D T d t
-5 % 5 E U e u
-6 & 6 F V f v
-7 ' 7 G W g w
-8 ( 8 H X h x
-9 ) 9 I Y i y
-A * : J Z j z
-B + ; K [ k {
-C , < L \ l |
-D - = M ] m }
-E . > N ^ n ~
-F / ? O _ o ฿

Sources:

  • Win2000 SP4, WinXP, Win7
  • cp874 to Unicode table v2.00, 04/15/98

Sources

The main source of this article is test runs performed on the Windows versions mentioned.

Online sources have been referenced in 2012–2014. Other sources have been consulted.

Article updated in September 2014: Windows codepage history back to 1991. DOS codepages moved to a separate article.

Windows codepages (and their history)
URN:NBN:fi-fe201401011003

©Aivosto Oy -