{{Short description|Sets of characters used in the 1980s & 90s}} '''Windows code pages''' are sets of characters or code pages (known as character encodings in other operating systems) used in Microsoft Windows from the 1980s and 1990s. Windows code pages were gradually superseded when Unicode was implemented in Windows,{{cn|date=October 2020}} although they are still supported both within Windows and other platforms, and still apply when Alt code shortcuts are used.

Current Windows versions support Unicode, new Windows applications should use Unicode (UTF-8) and not 8-bit character encodings.<ref>{{cite web |url=https://learn.microsoft.com/en-us/windows/win32/intl/unicode-and-character-sets |title=Unicode and character sets |publisher=Microsoft |date=2023-06-13 |access-date=2024-05-27}}</ref>

There are two groups of system code pages in Windows systems: OEM and Windows-native ("ANSI") code pages. (ANSI is the American National Standards Institute.) Code pages in both of these groups are extended ASCII code pages. Additional code pages are supported by standard Windows conversion routines, but not used as either type of system code page.

==ANSI code page<span class="anchor" id="ANSI"></span>== {{Infobox character encoding |name=Windows-125x series |alias=ANSI (misnomer) |mime= |image= |caption= |standard=WHATWG Encoding Standard |extends=ASCII |prev=ISO 8859 |next=Unicode<br/>UTF-16 (in Win32 API)<br/>UTF-8 (for files) |otherrelated= }}

'''ANSI code pages''' (officially called "Windows code pages"<ref>{{Cite web |date=2016-03-07 |title=Code Pages |url=https://msdn.microsoft.com/en-us/goglobal/bb964653.aspx |access-date=2021-05-26 |archive-url=https://web.archive.org/web/20160307222735/https://msdn.microsoft.com/en-us/goglobal/bb964653.aspx |archive-date=2016-03-07}}</ref> after Microsoft accepted the former term being a misnomer<ref name="ms glossary">{{Cite web |url=https://msdn.microsoft.com/en-us/goglobal/bb964658.aspx#a |title=Glossary of Terms Used on this Site |date=December 8, 2018 |archive-url=https://web.archive.org/web/20181208141313/https://msdn.microsoft.com/en-us/goglobal/bb964658.aspx#a |archive-date=2018-12-08 |quote=The term "ANSI" as used to signify Windows code pages is a historical reference, but is nowadays a misnomer that continues to persist in the Windows community. The source of this comes from the fact that the Windows code page 1252 was originally based on an ANSI draft—which became International Organization for Standardization (ISO) Standard 8859-1. “ANSI applications” are usually a reference to non-Unicode or code page–based applications.}}</ref>) are used for native non-Unicode (say, byte oriented) applications using a graphical user interface on Windows systems. The term "ANSI" is a misnomer because these Windows code pages do not comply with any ANSI (American National Standards Institute) standard; code page 1252 was based on an early ANSI draft that became the international standard ISO 8859-1,<ref name="ms glossary" /> which adds a further 32 control codes and space for 96 printable characters. Among other differences, Windows code-pages allocate printable characters to the supplementary control code space, making them at best illegible to standards-compliant operating systems.{{efn|name=supplementary | Standards-compliant systems should interpret data present at these codepoints as control instructions. In any case they would not be identified as printable characters.}}

Most legacy "ANSI" code pages have code page numbers in the pattern 125x. However, 874 (Thai) and the East Asian multi-byte "ANSI" code pages (932, 936, 949, 950), all of which are also used as OEM code pages, are numbered to match IBM encodings, none of which are identical to the Windows encodings (although most are similar). While code page 1258 is also used as an OEM code page, it is original to Microsoft rather than an extension to an existing encoding. IBM have assigned their own, different numbers for Microsoft's variants, these are given for reference in the lists below where applicable.

All of the 125x Windows code pages, as well as 874 and 936, are labelled by Internet Assigned Numbers Authority (IANA) as "Windows-''number''", although "Windows-936" is treated as a synonym for "GBK". Windows code page 932 is instead labelled as "Windows-31J".<ref>{{Cite web |title=Character Sets |url=http://www.iana.org/assignments/character-sets/character-sets.xhtml |access-date=2021-05-26 |website=www.iana.org |archive-date=2021-05-25 |archive-url=https://web.archive.org/web/20210525003138/https://www.iana.org/assignments/character-sets/character-sets.xhtml |url-status=live}}</ref>

ANSI Windows code pages, and especially the code page 1252, were so called since they were purportedly based on drafts submitted or intended for ANSI. However, ANSI and ISO have not standardized any of these code pages. Instead they are either:<ref name="ms glossary"/> * Supersets of the standard sets such as those of ISO 8859 and the various national standards (like Windows-1252 vs. ISO-8859-1), * Major modifications of these (making them incompatible to various degrees, like Windows-1250 vs. ISO-8859-2) * Having no parallel encoding (like Windows-1257 vs. ISO-8859-4; ISO-8859-13 was introduced much later). Also, Windows-1251 follows neither the ISO-standardised ISO-8859-5 nor the then-prevailing KOI-8.

Microsoft assigned about twelve of the typography and business characters (including notably, the euro sign, €) in CP1252 to the code points 0x80–0x9F that, in ISO&nbsp;8859, are assigned to C1 control codes. These assignments are also present in many other ANSI/Windows code pages at the same code-points. Windows did not use the C1 control codes, so this decision had no direct effect on Windows users. However, if included in a file transferred to a standards-compliant platform like Unix or MacOS, the information was invisible and potentially disruptive.{{efn|name=supplementary}}

== OEM code page{{anchor|OEM}} == The '''OEM code pages''' (original equipment manufacturer) are used by Win32 console applications, and by virtual DOS, and can be considered a holdover from DOS and the original IBM PC architecture. A separate suite of code pages was implemented not only due to compatibility, but also because the fonts of VGA (and descendant) hardware suggest encoding of line-drawing characters to be compatible with code page 437. Most OEM code pages share many code points, particularly for non-letter characters, with the second (non-ASCII) half of CP437.

A typical OEM code page, in its second half, does not resemble any ANSI/Windows code page even roughly. Nevertheless, two single-byte, fixed-width code pages (874 for Thai and 1258 for Vietnamese) and four multibyte CJK code pages (932, 936, 949, 950) are used as both OEM and ANSI code pages. Code page 1258 uses combining diacritics, as Vietnamese requires more than 128 letter-diacritic combinations. This is in contrast to VISCII, which replaces some of the C0 (i.e. ASCII) control codes.

== History == Early computer systems had limited storage and restricted the number of bits available to encode a character. Although earlier proprietary encodings had fewer, the American Standard Code for Information Interchange (ASCII) settled on seven bits: this was sufficient to encode a 96 member subset of the characters used in the US. As eight-bit bytes came to predominate, Microsoft (and others) expanded the repertoire to 224, to handle a variety of other uses such as box-drawing symbols. The need to provide precomposed characters for the Western European and South American markets required a different character set: Microsoft established the principle of code pages, one for each alphabet. For the segmental scripts used in most of Africa, the Americas, southern and south-east Asia, the Middle East and Europe, a character needs just one byte but two or more bytes are needed for the ideographic sets used in the rest of the world. The code-page model was unable to handle this challenge.

Since the late 1990s, software and systems have adopted Unicode as their preferred character encoding format: Unicode is designed to handle millions of characters. All current Microsoft products and application program interfaces use Unicode internally,{{cn|date=October 2020}} but some applications continue to use the default encoding{{clarify|date=October 2024}} of the computer's 'locale' when reading and writing text data to files or standard output.{{cn|date=October 2020}} Therefore, files may still be encountered that are legible and intelligible in one part of the world but unintelligible mojibake in another.

=== UTF-8, UTF-16 === Microsoft adopted a Unicode encoding (first the now-obsolete UCS-2, which was then Unicode's only encoding), i.e. UTF-16 for all its operating systems from Windows NT onwards, but additionally supports UTF-8 (aka <code>CP_UTF8</code>) since Windows 10 version 1803.<ref>{{cite web |url=https://srad.jp/story/17/11/14/0640253/ |title=Windows 10のInsider PreviewでシステムロケールをUTF-8にするオプションが追加される |trans-title=The option to make UTF-8 the system locale added in Windows 10 Insider Preview |author=hylom |website=スラド |language=ja |date=2017-11-14 |access-date=2018-05-10 |archive-date=2018-05-11 |archive-url=https://web.archive.org/web/20180511012606/https://srad.jp/story/17/11/14/0640253/ |url-status=live}}</ref> UTF-16 and UCS-2 can '''in theory''' encode all Unicode code points in the Basic Multilingual Plane (BMP) in a single 16-bit code point but the remaining Unicode (e.g. emojis or some Chinese) need more bytes and even letters that are inside the BMP like é do have representations in both UTF-8 and UTF-16 that require multiple code points. UCS-2 being a single-code-point encoding could not even represent all letters that only use code points within the bmp (example ā́ uses multiple code points and can thus not be represented in UCS-2). With the move from UCS-2 to UTF-16 it lost its only advantage but gained the ability to represent all of Unicode. The rest of the industry (Unix-like systems and the web), and now Microsoft chose UTF-8 (which is compatible with the 7-bit ASCII character set).

== List == {{Expand_list|date=April 2014}} The following Windows code pages exist: <!-- Please add only codepages which are or were actually supported by at least one version of Windows in at least one of its modes -->

=== Windows-125x series === These nine code pages are all extended ASCII 8-bit SBCS encodings, and were designed by Microsoft for use as ANSI codepages on Windows. They are commonly known by their IANA-registered<ref name="iana31j">{{cite web |url=https://www.iana.org/assignments/character-sets/character-sets.xhtml |publisher=IANA |title=Character Sets |access-date=2019-04-07 |archive-date=2016-12-03 |archive-url=https://web.archive.org/web/20161203235506/https://www.iana.org/assignments/character-sets/character-sets.xhtml |url-status=live }}</ref> names as <code>windows-&lt;number></code>, but are also sometimes called <code>cp&lt;number></code>, "cp" for "code page". They are all used as ANSI code pages; Windows-1258 is also used as an OEM code page.

The Windows-125x series includes nine of the ANSI code pages, and mostly covers scripts from Europe and West Asia with the addition of Vietnam. System encodings for Thai and for East Asian languages were numbered to match similar IBM code pages and are used as both ANSI and OEM code pages; these are covered in following sections. <!--

All of the Windows-125x encodings previously bore the source code comment "Windows 7 Ultimate". However, as the Windows-125x encodings were all designed for Windows and originally used by Windows, it goes without saying that all nine have Windows support.

--> {| class="wikitable" ! ID !! Description !! Relationship to ISO 8859 or other established encodings |- |{{anchor|CP1250}}1250<ref name="Microsoft_CP1250">{{cite web|author=Microsoft|title=Windows 1250|url=http://msdn.microsoft.com/en-us/goglobal/cc305143|access-date=2014-07-06|archive-date=2014-07-14|archive-url=https://web.archive.org/web/20140714112927/http://msdn.microsoft.com/en-us/goglobal/cc305143|url-status=live}}</ref><ref name="IBM_CP1250">{{cite web|author=IBM|title=SBCS code page information document CPGID 01250|url=http://www-01.ibm.com/software/globalization/cp/cp01250.html|access-date=2014-07-06|archive-date=2014-07-14|archive-url=https://web.archive.org/web/20140714174544/http://www-01.ibm.com/software/globalization/cp/cp01250.html|url-status=live}}</ref>||Latin&nbsp;2&nbsp;/ Central European||{{no2|Similar to ISO-8859-2 but moves several characters, including multiple letters.|align=left}} |- |{{anchor|CP1251}}1251<ref name="Microsoft_CP1251">{{cite web|author=Microsoft|title=Windows 1251|url=http://msdn.microsoft.com/en-us/goglobal/cc305144|access-date=2014-07-06|archive-date=2014-07-14|archive-url=https://web.archive.org/web/20140714193058/http://msdn.microsoft.com/en-us/goglobal/cc305144|url-status=live}}</ref><ref name="IBM_CP1251">{{cite web|author=IBM|title=SBCS code page information document CPGID 01251|url=http://www-01.ibm.com/software/globalization/cp/cp01251.html|access-date=2014-07-06|archive-date=2014-07-14|archive-url=https://web.archive.org/web/20140714134651/http://www-01.ibm.com/software/globalization/cp/cp01251.html|url-status=live}}</ref>||Cyrillic||{{no|Incompatible with both ISO-8859-5 and KOI-8.|align=left}} |- |{{anchor|CP1252}}1252<ref name="Microsoft_CP1252">{{cite web|author=Microsoft|title=Windows 1252|url=http://msdn.microsoft.com/en-us/goglobal/cc305145|access-date=2014-07-06|archive-date=2013-05-04|archive-url=https://web.archive.org/web/20130504221024/http://msdn.microsoft.com/en-us/goglobal/cc305145|url-status=live}}</ref><ref name="IBM_CP1252">{{cite web|author=IBM|title=SBCS code page information document CPGID 01252|url=http://www-01.ibm.com/software/globalization/cp/cp01252.html|access-date=2014-07-06|archive-date=2014-07-14|archive-url=https://web.archive.org/web/20140714135559/http://www-01.ibm.com/software/globalization/cp/cp01252.html|url-status=live}}</ref>||Latin 1 / Western European||{{yes|Superset of ISO-8859-1 (without C1 controls). Letter repertoire accordingly similar to CP850.|align=left}} |- |{{anchor|CP1253}}1253<ref name="Microsoft_CP1253">{{cite web|author=Microsoft|title=Windows 1253|url=http://msdn.microsoft.com/en-us/goglobal/cc305146|access-date=2014-07-06|archive-date=2014-07-14|archive-url=https://web.archive.org/web/20140714120112/http://msdn.microsoft.com/en-us/goglobal/cc305146|url-status=live}}</ref><ref name="IBM_CP1253">{{cite web|author=IBM|title=SBCS code page information document CPGID 01253|url=http://www-01.ibm.com/software/globalization/cp/cp01253.html|access-date=2014-07-06|archive-date=2014-07-14|archive-url=https://web.archive.org/web/20140714173231/http://www-01.ibm.com/software/globalization/cp/cp01253.html|url-status=live}}</ref>||Greek||{{partial|Similar to ISO 8859-7 but moves several characters, including a letter.|align=left}} |- |{{anchor|CP1254}}1254<ref name="Microsoft_CP1254">{{cite web|author=Microsoft|title=Windows 1254|url=http://msdn.microsoft.com/en-us/goglobal/cc305147|access-date=2014-07-06|archive-date=2014-07-14|archive-url=https://web.archive.org/web/20140714234606/http://msdn.microsoft.com/en-us/goglobal/cc305147|url-status=live}}</ref><ref name="IBM_CP1254">{{cite web|author=IBM|title=SBCS code page information document CPGID 01254|url=http://www-01.ibm.com/software/globalization/cp/cp01254.html|access-date=2014-07-06|archive-date=2014-07-14|archive-url=https://web.archive.org/web/20140714125357/http://www-01.ibm.com/software/globalization/cp/cp01254.html|url-status=live}}</ref>||Turkish||{{yes|Superset of ISO 8859-9 (without C1 controls).|align=left}} |- |{{anchor|CP1255}}1255<ref name="Microsoft_CP1255">{{cite web|author=Microsoft|title=Windows 1255|url=http://msdn.microsoft.com/en-us/goglobal/cc305148|access-date=2014-07-06|archive-date=2014-07-14|archive-url=https://web.archive.org/web/20140714233040/http://msdn.microsoft.com/en-us/goglobal/cc305148|url-status=live}}</ref><ref name="IBM_CP1255">{{cite web|author=IBM|title=SBCS code page information document CPGID 01255|url=http://www-01.ibm.com/software/globalization/cp/cp01255.html|access-date=2014-07-06|archive-date=2014-07-14|archive-url=https://web.archive.org/web/20140714183315/http://www-01.ibm.com/software/globalization/cp/cp01255.html|url-status=live}}</ref>||Hebrew||{{partial|Almost a superset of ISO 8859-8, but with two incompatible punctuation changes.|align=left}} |- |{{anchor|CP1256}}1256<ref name="Microsoft_CP1256">{{cite web|author=Microsoft|title=Windows 1256|url=http://msdn.microsoft.com/en-us/goglobal/cc305149|access-date=2014-07-06|archive-date=2014-07-14|archive-url=https://web.archive.org/web/20140714122158/http://msdn.microsoft.com/en-us/goglobal/cc305149|url-status=live}}</ref><ref name="IBM_CP1256">{{cite web|author=IBM|title=SBCS code page information document CPGID 01256|url=http://www-01.ibm.com/software/globalization/cp/cp01256.html|access-date=2014-07-06|archive-date=2014-07-14|archive-url=https://web.archive.org/web/20140714180810/http://www-01.ibm.com/software/globalization/cp/cp01256.html|url-status=live}}</ref>||Arabic||{{no|Not compatible with ISO 8859-6; rather, OEM Code page 708 is an ISO 8859-6 (ASMO 708) superset.|align=left}} |- |{{anchor|CP1257}}1257<ref name="Microsoft_CP1257">{{cite web|author=Microsoft|title=Windows 1257|url=http://msdn.microsoft.com/en-us/goglobal/cc305150|access-date=2014-07-06|archive-date=2013-03-16|archive-url=https://web.archive.org/web/20130316005822/http://msdn.microsoft.com/en-us/goglobal/cc305150|url-status=live}}</ref><ref name="IBM_CP1257">{{cite web|author=IBM|title=SBCS code page information document CPGID 01257|url=http://www-01.ibm.com/software/globalization/cp/cp01257.html|access-date=2014-07-06|archive-date=2014-07-14|archive-url=https://web.archive.org/web/20140714132230/http://www-01.ibm.com/software/globalization/cp/cp01257.html|url-status=live}}</ref>||Baltic||{{partial|Not ISO 8859-4; the later ISO 8859-13 is closely related, but with some differences in available punctuation.|align=left}} |- |{{anchor|CP1258}}1258<ref name="Microsoft_CP1258">{{cite web|author=Microsoft|title=Windows 1258|url=http://msdn.microsoft.com/en-us/goglobal/cc305151|access-date=2014-07-06|archive-date=2013-10-25|archive-url=https://web.archive.org/web/20131025142227/http://msdn.microsoft.com/en-us/goglobal/cc305151|url-status=live}}</ref><ref name="IBM_CP1258">{{cite web|author=IBM|title=SBCS code page information document CPGID 01258|url=http://www-01.ibm.com/software/globalization/cp/cp01258.html|access-date=2014-07-06|archive-date=2014-07-14|archive-url=https://web.archive.org/web/20140714123221/http://www-01.ibm.com/software/globalization/cp/cp01258.html|url-status=live}}</ref>||Vietnamese (also OEM)||{{no|Not related to VSCII or VISCII, uses fewer base characters with combining diacritics.|align=left}} |- |}

=== DOS code pages === These are also ASCII-based. Most of these are included for use as OEM code pages; code page 874 is also used as an ANSI code page. {{Div col|colwidth=30em}} * {{anchor|CP437}}437 – IBM PC US, 8-bit SBCS extended ASCII.<ref name="IBM_CP437">{{cite web|author=IBM|title=SBCS code page information document - CPGID 00437|url=http://www-01.ibm.com/software/globalization/cp/cp00437.html|access-date=2014-07-04|archive-date=2016-06-09|archive-url=https://web.archive.org/web/20160609084933/https://www-01.ibm.com/software/globalization/cp/cp00437.html|url-status=live}}</ref> Known as OEM-US, the encoding of the primary built-in font of VGA graphics cards.<!-- Windows 7 Ultimate --><!-- 1.00-4.90 --> * 708 – Arabic, extended ISO 8859-6 (ASMO 708)<!-- Windows 7 Ultimate --> * 720 – Arabic, retaining box drawing characters in their usual locations<!-- Windows 7 Ultimate --> * 737 – "MS-DOS Greek". Retains all box drawing characters. More popular than 869.<!-- Windows 7 Ultimate --> * 775 – "MS-DOS Baltic Rim"<!-- Windows 7 Ultimate --> * 850 – "MS-DOS Latin 1". Full (re-arranged) repertoire of ISO 8859-1.<!-- Windows 7 Ultimate --> * 852 – "MS-DOS Latin 2"<!-- Windows 7 Ultimate --> * 855 – "MS-DOS Cyrillic". Mainly used for South Slavic languages. Includes (re-arranged) repertoire of ISO-8859-5. Not to be confused with cp866.<!-- Windows 7 Ultimate --> * 857 – "MS-DOS Turkish"<!-- Windows 7 Ultimate --> * 858 – Western European with euro sign<!-- Windows 7 Ultimate --> * 860 – "MS-DOS Portuguese"<!-- Windows 7 Ultimate --> * 861 – "MS-DOS Icelandic"<!-- Windows 7 Ultimate --> * 862 – "MS-DOS Hebrew"<!-- Windows 7 Ultimate --> * 863 – "MS-DOS French Canada"<!-- Windows 7 Ultimate --> * 864 – Arabic<!-- Windows 7 Ultimate --> * 865 – "MS-DOS Nordic"<!-- Windows 7 Ultimate --> * 866 – "MS-DOS Cyrillic Russian", cp866. Sole purely OEM code page (rather than ANSI or both) included as a legacy encoding in WHATWG Encoding Standard for HTML5.<!-- Windows 7 Ultimate --> * 869 – "MS-DOS Greek 2", IBM869. Full (re-arranged) repertoire of ISO 8859-7.<!-- Windows 7 Ultimate --> * 874Thai, also used as the ANSI code page, extends ISO 8859-11 (and therefore TIS-620) with a few additional characters from Windows-1252. Corresponds to IBM code page 1162 (IBM-874 is similar but has different extensions).<!-- Windows 7 Ultimate --> {{Div col end}}

=== East Asian multi-byte code pages === These often differ from the IBM code pages of the same number: code pages 932, 949 and 950 only partly match the IBM code pages of the same number, while the number 936 was used by IBM for another Simplified Chinese encoding which is now deprecated and Windows-951, as part of a kludge, is unrelated to IBM-951. IBM equivalent code pages are given in the second column. Code pages 932, 936, 949 and 950/951 are used as both ANSI and OEM code pages on the locales in question. {|class="wikitable sortable" !ID!!Language!!Encoding!! data-sort-type="number" |IBM Equivalent!!Difference from IBM CCSID of same number!!Use |- |932||Japanese||Shift JIS (Microsoft variant)||943<ref name="ibm932v943">{{cite web|url=https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/com.ibm.aix.nlsgdrf/ibm-943_ibm-932.htm|title=IBM-943 and IBM-932|publisher=IBM|work=IBM Knowledge Center|access-date=2020-07-08|archive-date=2018-08-18|archive-url=https://web.archive.org/web/20180818214409/https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/com.ibm.aix.nlsgdrf/ibm-943_ibm-932.htm|url-status=live }}</ref>||IBM-932 is also Shift JIS, has fewer extensions (but those extensions it has are in common), and swaps some variant Chinese characters (''itaiji'') for interoperability with earlier editions of JIS C 6226.||ANSI/OEM (Japan)<!-- Windows 7 Ultimate --> |- |936||Chinese (simplified)||GBK||1386||IBM-936 is a different Simplified Chinese encoding with a different encoding method, which has been deprecated since 1993.||ANSI/OEM (PRC, Singapore)<!-- Windows 7 Ultimate --> |- |949||Korean||Unified Hangul Code||1363||IBM-949 is also an EUC-KR superset, but with different (colliding) extensions.||ANSI/OEM (Republic of Korea)<!-- Windows 7 Ultimate --> |- |950||Chinese (traditional)||Big5 (Microsoft variant)||1373<ref>{{cite web |url=http://icu-project.org/icu-bin/convexp?conv=ibm-1373_P100-2002 |title=Converter Explorer: ibm-1373_P100-2002 |work=ICU Demonstration |publisher=International Components for Unicode |access-date=2020-06-27 |archive-date=2021-05-26 |archive-url=https://web.archive.org/web/20210526173749/https://icu4c-demos.unicode.org/icu-bin/convexp?conv=ibm-1373_P100-2002 |url-status=live }}</ref>||IBM-950 is also Big5, but includes a different subset of the ETEN extensions, adds further extensions with an expanded trail byte range, and lacks the Euro.||ANSI/OEM (Taiwan, Hong Kong)<!-- Windows 7 Ultimate --> |- |951||Chinese (traditional) including Cantonese||Big5-HKSCS (2001 ed.)||5471<ref>{{cite web|archive-url=https://web.archive.org/web/20141129233053/http://www-01.ibm.com/software/globalization/ccsid/ccsid5471.html|archive-date=2014-11-29|url-status=dead|url=http://www-01.ibm.com/software/globalization/ccsid/ccsid5471.html|work=IBM Globalization|publisher=IBM|title=Coded character set identifiers – CCSID 5471}}</ref>||IBM-951 is the double-byte plane from IBM-949 (see above), and unrelated to Microsoft's internal use of the number 951.||ANSI/OEM (Hong Kong, 98/NT4/2000/XP with HKSCS patch) |} right|thumb|Microsoft code pages for Chinese, Japanese and Korean usually do not correspond exactly, and sometimes do not correspond at all, to the IBM code pages of the same number. A few further multiple-byte code pages are supported for decoding or encoding using operating system libraries, but not used as either sort of system encoding in any locale. {|class="wikitable sortable" !ID!!data-sort-type="number"|IBM Equivalent!!Language!!Encoding!!Use |- |1361||-<!-- 834 would be the CPGID for JOHAB, albeit its non-syllable part is not the KS C 5601-1992 one but the one used with EBCDIC. It has several CCSIDs but these are either DBCS-only or combined with EBCDIC. -->||Korean||Johab (KS C 5601-1992 annex 3)||Conversion<!-- Windows 7 Ultimate --> |- |20000||-<!-- 964 is the IBM CCSID for CNS 11643 as EUC-TW, which only matches Windows-20000's encoding method for plane 1 (non-hanzi and level 1 hanzi). Windows appears to put plane 1 in [\xA1-\xFE][\xA1-\xFE] and plane 2 in [\xA1-\xFE][\x21-\x7E], resembling DEC Kanji in encoding method, and omits planes 3 and up (that being said, IBM-964 only includes the two planes, plus user-defined in plane 12 and corporate extensions in plane 13). -->||Chinese (traditional)||An encoding of CNS 11643<!--"CNS Taiwan; Chinese Traditional (CNS)"-->||Conversion<!-- Windows 7 Ultimate --> |- |20001||-||Chinese (traditional)||TCA||Conversion<!-- Windows 7 Ultimate --> |- |20002||-||Chinese (traditional)||Big5 (ETEN variant)||Conversion<!-- Windows 7 Ultimate --> |- |20003||938||Chinese (traditional)||IBM 5550||Conversion<!-- Windows 7 Ultimate --> |- |20004||-||Chinese (traditional)||Teletext||Conversion<!-- Windows 7 Ultimate --> |- |20005||-||Chinese (traditional)||Wang||Conversion<!-- Windows 7 Ultimate --> |- |20932||954 (roughly)||Japanese||EUC-JP||Conversion<!-- Windows 7 Ultimate --> |- |20936||5479||Chinese (simplified)||GB 2312||Conversion |- |20949, 51949||970||Korean||Wansung (8-bit with ASCII, i.e. EUC-KR)<ref>{{cite web |url=https://source.winehq.org/git/wine.git/blob/6f68543692a7588daa581d00c475715395036b15:/tools/make_unicode#l946 |title=dump_krwansung_codepage: build Korean Wansung table from the KSX1001 file |work=make_unicode: Generate code page .c files from ftp.unicode.org descriptions |first=Alexandre |last=Julliard |date=11 March 2021 |publisher=Wine Project |access-date=2021-03-14 |archive-date=2021-05-26 |archive-url=https://web.archive.org/web/20210526173718/https://source.winehq.org/git/wine.git/blob/6f68543692a7588daa581d00c475715395036b15:/tools/make_unicode#l946 |url-status=live}}</ref>||Conversion |}

=== EBCDIC code pages === {|class="wikitable" !data-sort-type="number"|ID!!data-sort-type="number"|IBM Equivalent!!Description |- |colspan="2"|{{anchor|CP37}}37||Country Extended Code Page for US, Canada, Netherlands, Portugal, Brazil, Australia, New Zealand<ref name="IBM_CP037">{{cite web|author=IBM|title=SBCS code page information document - CPGID 00037|url=http://www-01.ibm.com/software/globalization/cp/cp00037.html|access-date=2014-07-04|archive-date=2014-07-14|archive-url=https://web.archive.org/web/20140714185507/http://www-01.ibm.com/software/globalization/cp/cp00037.html|url-status=live}}</ref> <!-- Windows 7 Ultimate --> |- |colspan="2"|500||Country Extended Code Page for Belgium, Canada and Switzerland<!-- Windows 7 Ultimate --> |- |colspan="2"|870||EBCDIC Latin-2<!-- Windows 7 Ultimate --> |- |colspan="2"|875||EBCDIC Greek<!-- Windows 7 Ultimate --> |- |colspan="2"|1026||EBCDIC Latin-5 (Turkish)<!-- Windows 7 Ultimate --> |- |colspan="2"|1047||Country Extended Code Page for Open Systems (POSIX)<!-- Windows 7 Ultimate --> |- |colspan="2"|1140||Euro-sign Country Extended Code Page for US, Canada, Netherlands, Portugal, Brazil, Australia, New Zealand<!-- Windows 7 Ultimate --> |- |colspan="2"|1141||Euro-sign Country Extended Code Page for Austria and Germany<!-- Windows 7 Ultimate --> |- |colspan="2"|1142||Euro-sign Country Extended Code Page for Denmark and Norway<!-- Windows 7 Ultimate --> |- |colspan="2"|1143||Euro-sign Country Extended Code Page for Finland and Sweden<!-- Windows 7 Ultimate --> |- |colspan="2"|1144||Euro-sign Country Extended Code Page for Italy<!-- Windows 7 Ultimate --> |- |colspan="2"|1145||Euro-sign Country Extended Code Page for Spain and Latin America<!-- Windows 7 Ultimate --> |- |colspan="2"|1146||Euro-sign Country Extended Code Page for UK<!-- Windows 7 Ultimate --> |- |colspan="2"|1147||Euro-sign Country Extended Code Page for France<!-- Windows 7 Ultimate --> |- |colspan="2"|1148||Euro-sign Country Extended Code Page for Belgium, Canada and Switzerland<!-- Windows 7 Ultimate --> |- |colspan="2"|1149||Euro-sign Country Extended Code Page for Iceland<!-- Windows 7 Ultimate --> |- |20273||273||Country Extended Code Page for Germany<!-- Windows 7 Ultimate --> |- |20277||277||Country Extended Code Page for Denmark/Norway<!-- Windows 7 Ultimate --> |- |20278||278||Country Extended Code Page for Finland/Sweden<!-- Windows 7 Ultimate --> |- |20280||280||Country Extended Code Page for Italy |- |20284||284||Country Extended Code Page for Latin America/Spain<!-- Windows 7 Ultimate --> |- |20285||285||Country Extended Code Page for United Kingdom<!-- Windows 7 Ultimate --> |- |20290||290||Japanese Katakana EBCDIC<!-- Windows 7 Ultimate --> |- |20297||297||Country Extended Code Page for France<!-- Windows 7 Ultimate --> |- |20420||420||EBCDIC Arabic<!-- Windows 7 Ultimate --> |- |20423||423||EBCDIC Greek with Extended Latin<!-- Windows 7 Ultimate --> |- |20424||424||EBCDIC Hebrew<!-- Windows 7 Ultimate --> |- |20833||833||Korean EBCDIC for N-Byte Hangul; {{code|x-EBCDIC-KoreanExtended}}<!-- Windows 7 Ultimate --> |- |20838||838||EBCDIC Thai<!-- Windows 7 Ultimate --> |- |20871||871||Country Extended Code Page for Iceland<!-- Windows 7 Ultimate --> |- |20880||880||EBCDIC Cyrillic (DKOI)<!-- Windows 7 Ultimate --> |- |20905||905||EBCDIC Latin-3 (Maltese, Esperanto and Turkish)<!-- Windows 7 Ultimate --> |- |20924||924||EBCDIC Latin-9 (including Euro sign) for Open Systems (POSIX) |- |21025||1025||EBCDIC Cyrillic (DKOI) with section sign<!-- Windows 7 Ultimate --> |- |21027||(1027)||Japanese EBCDIC (an incomplete implementation of IBM code page 1027,<ref>{{cite web |url=https://blogs.msdn.microsoft.com/shawnste/2005/09/12/code-page-21027-extendedext-alpha-lowercase/ |last=Steele |first=Shawn |publisher=MSDN |date=2005-09-12 |title=Code Page 21027 "Extended/Ext Alpha Lowercase" |access-date=2019-04-06 |archive-date=2019-04-06 |archive-url=https://web.archive.org/web/20190406193522/https://blogs.msdn.microsoft.com/shawnste/2005/09/12/code-page-21027-extendedext-alpha-lowercase/ |url-status=live }}</ref> now deprecated)<ref name="Code page identifier list">{{Cite web|url=https://docs.microsoft.com/en-gb/windows/desktop/Intl/code-page-identifiers|title=Code Page Identifiers|website=docs.microsoft.com|access-date=2019-04-07|archive-date=2019-04-07|archive-url=https://web.archive.org/web/20190407185239/https://docs.microsoft.com/en-gb/windows/desktop/Intl/code-page-identifiers|url-status=live}}</ref><!-- Windows 7 Ultimate --> |}

=== Unicode-related code pages === {|class="wikitable" !data-sort-type="number"|ID!!data-sort-type="number"|IBM Equivalent!!Description |- |1200||1202, 1203||Unicode (BMP of ISO 10646, UTF-16LE). Available only to managed applications.<ref name="Code page identifier list"/> |- |1201||1200, 1201||Unicode (UTF-16BE). Available only to managed applications.<ref name="Code page identifier list"/> |- |12000||1234, 1235||UTF-32. Available only to managed applications.<ref name="Code page identifier list"/> |- |12001||1232, 1233||UTF-32. Big-endian. Available only to managed applications.<ref name="Code page identifier list"/> |- |65000||-||Unicode (UTF-7) |- |65001||1208, 1209||Unicode (UTF-8) |}

=== Macintosh compatibility code pages === {|class="wikitable" !data-sort-type="number"|ID!!data-sort-type="number"|IBM Equivalent!!Description |- |10000||1275||Apple Macintosh Roman<!-- Windows 7 Ultimate --> |- |10001||-||Apple Macintosh Japanese<!-- Windows 7 Ultimate --> |- |10002||-||Apple Macintosh Chinese (traditional) (BIG-5)<!-- Windows 7 Ultimate --> |- |10003||-||Apple Macintosh Korean<!-- Windows 7 Ultimate --> |- |10004||-||Apple Macintosh Arabic<!-- Windows 7 Ultimate --> |- |10005||-||Apple Macintosh Hebrew<!-- Windows 7 Ultimate --> |- |10006||1280||Apple Macintosh Greek<!-- Windows 7 Ultimate --> |- |10007||1283||Apple Macintosh Cyrillic<!-- Windows 7 Ultimate --> |- |10008||-||Apple Macintosh Chinese (simplified) (GB 2312)<!-- Windows 7 Ultimate --> |- |10010||1285||Apple Macintosh Romanian<!-- Windows 7 Ultimate --> |- |10017||-||Apple Macintosh Ukrainian<!-- Windows 7 Ultimate --> |- |10021||-||Apple Macintosh Thai<!-- Windows 7 Ultimate --> |- |10029||1282||Apple Macintosh Roman II / Central Europe<!-- Windows 7 Ultimate --> |- |10079||1286||Apple Macintosh Icelandic<!-- Windows 7 Ultimate --> |- |10081||1281||Apple Macintosh Turkish<!-- Windows 7 Ultimate --> |- |10082||1284||Apple Macintosh Croatian<!-- Windows 7 Ultimate --> |}

=== ISO 8859 code pages === {|class="wikitable" !data-sort-type="number"|ID!!data-sort-type="number"|IBM Equivalent!!Description |- |28591||819, 5100||ISO-8859-1 – Latin-1<!-- Windows 7 Ultimate --> |- |28592||912||ISO-8859-2 – Latin-2<!-- Windows 7 Ultimate --> |- |28593||913||ISO-8859-3 – Latin-3 or South European<!-- Windows 7 Ultimate --> |- |28594||914||ISO-8859-4 – Latin-4 or North European<!-- Windows 7 Ultimate --> |- |28595||915||ISO-8859-5 – Latin/Cyrillic<!-- Windows 7 Ultimate --> |- |28596||-||ISO-8859-6 – Latin/Arabic<!-- Windows 7 Ultimate --> |- |28597||813, 4909, 9005||ISO-8859-7 – Latin/Greek<!-- Windows 7 Ultimate --> (1987 edition, i.e. without euro sign, drachma sign or iota subscript)<ref name="encodings_rs">{{cite web |url=https://docs.rs/encoding_rs/latest/encoding_rs/#relationship-with-windows-code-pages |title=Relationship with Windows Code Pages |work=Crate encoding_rs |publisher=Docs.rs |author=Mozilla Foundation |author-link=Mozilla Foundation}}</ref> |- |28598||-||ISO-8859-8 – Latin/Hebrew<!-- Windows 7 Ultimate --> (visual order; 1988 edition, i.e. without {{ctrl|LRM}} and {{ctrl|RLM}})<ref name="encodings_rs"/> |- |28599||920||ISO-8859-9 – Latin-5 or Turkish<!-- Windows 7 Ultimate --> |- |28600||919||ISO-8859-10 – Latin-6 or Nordic |- |28601||-||ISO-8859-11 – Latin/Thai |- |28602||-||ISO-8859-12 – ''reserved for Latin/Devanagari but abandoned'' (not supported)<!-- not supported by Windows --> |- |28603||921||ISO-8859-13 – Latin-7 or Baltic Rim<!-- Windows 7 Ultimate --> |- |28604||-||ISO-8859-14 – Latin-8 or Celtic |- |28605||923||ISO-8859-15 – Latin-9<!-- Windows 7 Ultimate --> |- |28606||-||ISO-8859-16 – Latin-10 or South-Eastern European |- |38596||1089||ISO-8859-6-{{serif|I}} – Latin/Arabic (logical bidirectional order) |- |38598||916, 5012||ISO-8859-8-{{serif|I}} – Latin/Hebrew (logical bidirectional order; 1988 edition, i.e. without {{ctrl|LRM}} and {{ctrl|RLM}})<ref name="encodings_rs"/> |}

=== ITU-T code pages === {|class="wikitable" !data-sort-type="number"|ID!!data-sort-type="number"|IBM Equivalent!!Description |- |20105||1009||7-bit IA5 IRV (Western European)<ref name="MS_2014_CP201xx">{{cite web |title=Code Page Identifiers |publisher=Microsoft |work=Microsoft Developer Network |date=2014 |url=https://msdn.microsoft.com/de-de/en-en/library/windows/desktop/dd317756(v=vs.85).aspx |access-date=2016-06-19 |url-status=live |archive-url=https://web.archive.org/web/20160619132819/https://msdn.microsoft.com/de-de/en-en/library/windows/desktop/dd317756(v=vs.85).aspx |archive-date=2016-06-19}}</ref><ref name="WG_CP201xx">{{cite web |title=Web Encodings - Internet Explorer - Encodings |date=2012-10-23 |work=WHATWG Wiki |url=https://wiki.whatwg.org/wiki/Web_Encodings#Encodings_3 |access-date=2016-06-20 |url-status=live |archive-url=https://web.archive.org/web/20160620184648/https://wiki.whatwg.org/wiki/Web_Encodings#Encodings_3 |archive-date=2016-06-20}}</ref><ref name="WU_CP20105">{{cite web |title=Western European (IA5) encoding - Windows charsets |author-first=Antonin |author-last=Foller |date=2014 |orig-year=2011 |work=WUtils.com - Online web utility and help |publisher=Motobit Software |url=http://wutils.com/encodings/x-ia5 |access-date=2016-06-20 |url-status=live |archive-url=https://web.archive.org/web/20160620183843/http://wutils.com/encodings/x-ia5 |archive-date=2016-06-20}}</ref><!-- Windows 7 Ultimate, x-IA5 --> |- |20106||1011||7-bit IA5 German (DIN 66003)<ref name="MS_2014_CP201xx"/><ref name="WG_CP201xx"/><ref name="WU_CP20106">{{cite web |title=German (IA5) encoding – Windows charsets |author-first=Antonin |author-last=Foller |date=2014 |orig-year=2011 |work=WUtils.com – Online web utility and help |publisher=Motobit Software |url=http://wutils.com/encodings/x-ia5-german |access-date=2016-06-20 |url-status=live |archive-url=https://web.archive.org/web/20160620183739/http://wutils.com/encodings/x-ia5-german |archive-date=2016-06-20}}</ref><!-- Windows 7 Ultimate, x-IA5-German --> |- |20107||1018||7-bit IA5 Swedish (SEN 850200 C)<ref name="MS_2014_CP201xx"/><ref name="WG_CP201xx"/><ref name="WU_CP20107">{{cite web |title=Swedish (IA5) encoding - Windows charsets |author-first=Antonin |author-last=Foller |date=2014 |orig-year=2011 |work=WUtils.com - Online web utility and help |publisher=Motobit Software |url=http://wutils.com/encodings/x-ia5-swedish |access-date=2016-06-20 |url-status=live |archive-url=https://web.archive.org/web/20160620183231/http://wutils.com/encodings/x-ia5-swedish |archive-date=2016-06-20}}</ref><!-- Windows 7 Ultimate, x-IA5-Swedish --> |- |20108||1016||7-bit IA5 Norwegian (NS 4551-2)<ref name="MS_2014_CP201xx"/><ref name="WG_CP201xx"/><ref name="WU_CP20108">{{cite web |title=Norwegian (IA5) encoding - Windows charsets |author-first=Antonin |author-last=Foller |date=2014 |orig-year=2011 |work=WUtils.com - Online web utility and help |publisher=Motobit Software |url=http://wutils.com/encodings/x-ia5-norwegian |access-date=2016-06-20 |url-status=live |archive-url=https://web.archive.org/web/20160620183449/http://wutils.com/encodings/x-ia5-norwegian |archive-date=2016-06-20}}</ref><!-- Windows 7 Ultimate, x-IA5-Norwegian --> |- |20127||367||7-bit ASCII<ref name="MS_2014_CP201xx"/><ref name="WG_CP201xx"/><ref name="WU_CP20127">{{cite web |title=US-ASCII encoding - Windows charsets |author-first=Antonin |author-last=Foller |date=2014 |orig-year=2011 |work=WUtils.com - Online web utility and help |publisher=Motobit Software |url=http://wutils.com/encodings/us-ascii |access-date=2016-06-20 |url-status=live |archive-url=https://web.archive.org/web/20160620192058/http://wutils.com/encodings/us-ascii |archive-date=2016-06-20}}</ref><!-- Windows 7 Ultimate --> |- |20261||1036||T.61 (T.61-8bit)<!-- Windows 7 Ultimate --> |- |20269||?||ISO-6937<!-- Windows 7 Ultimate --> |}

=== KOI8 code pages === {|class="wikitable" !data-sort-type="number"|ID!!data-sort-type="number"|IBM Equivalent!!Description |- |20866||878||Russian – KOI8-R<!-- Windows 7 Ultimate --> |- ||21866||1167, 1168||Ukrainian – KOI8-U (or KOI8-RU in some versions)<ref>{{cite web |title=Review of 8-bit Cyrillic encodings universe |author-first=Valentin |author-last=Nechayev |date=2013 |orig-year=2001 |url=http://segfault.kiev.ua/cyrillic-encodings/ |access-date=2016-12-05 |url-status=live |archive-url=https://web.archive.org/web/20161205134629/http://segfault.kiev.ua/cyrillic-encodings/ |archive-date=2016-12-05}}</ref><!-- Windows 7 Ultimate --> |}

== Problems arising from the use of code pages == Microsoft strongly recommends using Unicode in modern applications, but many applications or data files still depend on the legacy code pages. * Programs need to know what code page to use in order to display the contents of (pre-Unicode) files correctly. If a program uses the wrong code page it may show text as mojibake. * The code page in use may differ between machines, so (pre-Unicode) files created on one machine may be unreadable on another. * Data is often improperly tagged with the code page, or not tagged at all, making determination of the correct code page to read the data difficult. * These Microsoft code pages differ to various degrees from some of the standards and other vendors' implementations. This isn't a Microsoft issue ''per se'', as it happens to all vendors, but the lack of consistency makes interoperability with other systems unreliable in some cases. * The use of code pages limits the set of characters that may be used. * Characters expressed in an unsupported code page may be converted to question marks (?) or other replacement characters, or to a simpler version (such as removing accents from a letter). In either case, the original character may be lost.

== Notes == {{notelist}}

==References== {{reflist}}

==External links== * [https://web.archive.org/web/20171015144140/https://www.microsoft.com/resources/msdn/goglobal/default.mspx National Language Support (NLS) API Reference]. Table showing ANSI and OEM codepages per language (from web-archive since Microsoft removed the original page) * [https://www.iana.org/assignments/charset-reg IANA Charset Name Registrations] * [https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS Unicode mapping table for Windows code pages] * [https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit Unicode mappings of windows code pages with "best fit"]

{{character encoding}}

{{DEFAULTSORT:Windows Code Page}} Category:Windows code pages