Jump to content

Code page 1004

From Alfawiki
Adapted from the English Wikipedia article Code page 1004, available under CC BY-SA 4.0Updated 9 August 2025
Microsoft
Company typePublic
IndustrySoftware, Technology
FoundedApril 4, 1975; 51 years ago (1975-04-04) in Albuquerque, New Mexico, U.S.
FounderBill Gates, Paul Allen
Headquarters
Redmond, Washington
,
United States
ProductsWindows-1252 character encoding, Microsoft Windows, Microsoft Office, and other software products
Websitemicrosoft.com

Windows-1252, also known as CP-1252 (Windows code page 1252), is a legacy single-byte character encoding created by Microsoft. It serves as the default "ANSI code page" within Microsoft Windows systems across regions including the Americas, Western Europe, Oceania, and large parts of Africa.

Initially, Windows-1252 was identical to ISO 8859-1. However, starting with Windows 2.0, it introduced additional characters in the hexadecimal range 0x80 to 0x9F—an area reserved for control characters in ISO standards. These extra symbols comprise typographic quotation marks and all printable characters found in ISO 8859-15.

Despite the widespread adoption of multi-byte encodings like UTF-8 on the web, Windows-1252 remains the most prevalent single-byte character set worldwide. As of mid-2025, approximately 1.0% of websites specify ISO 8859-1—which modern browsers interpret as Windows-1252 according to the HTML5 standard—while about 0.3% explicitly declare Windows-1252, summing to roughly 1.3% usage overall. This figure is notably higher in certain markets; for instance, Brazil and Germany each exhibit combined Windows-1252 and ISO 8859-1 usage near 2.3%, indicating its ongoing significance in these locales.

Name

Within Windows environments, this encoding is identified by code page number 1252 and carries the IANA-designated name "windows-1252." Microsoft commonly labels it as an "ANSI Code Page," though it has never been formally ratified by ANSI. Microsoft acknowledges that the term "ANSI" is a historical misnomer that persists informally among Windows users.

IBM catalogs this encoding as code page 1252, with CCSID identifiers 1252 and extended CCSID 5348. In Oracle Database contexts, it is referred to as "WE8MSWIN1252."

History

Windows-1252 was introduced alongside Microsoft Windows 1.0, initially mirroring ISO-8859-1 but leaving certain code points undefined. Subsequent updates in Windows versions 2.0 and 3.1 progressively assigned values to these positions, culminating with the final iteration released in Windows 98.

During the 1990s, numerous Microsoft applications generating HTML content employed Windows-1252-specific characters while labeling documents as ISO-8859-1 or ASCII. This discrepancy caused rendering problems on non-Windows platforms; for example, smart quotes from Microsoft Word often appeared incorrectly outside Windows environments. By around the year 2000, most web browsers and email clients began interpreting ISO-8859-1 and US-ASCII content as Windows-1252 to resolve these compatibility issues—a practice now mandated by the HTML5 specification.

Although Unicode support via UCS-2/UTF-16 was available in Windows NT, many programs favored using single-byte encodings such as Windows-1252 to maintain compatibility. Since the release of Windows 10, support for UTF-8 has expanded steadily, gradually shifting away from reliance on legacy encodings.

Codepage layout

The following table illustrates the Windows-1252 character set. Variations from ISO-8859-1 are indicated by Unicode code points displayed beneath each character, based on Unicode.org’s recommended "best fit" mappings for Windows-1252. Hovering over characters reveals tooltips with their Unicode names and decimal Alt code values.

Codepoint Character Unicode Description
  | U+0020 | Space
! | U+0021 | Exclamation mark
" | U+0022 | Quotation mark
# | U+0023 | Number sign
$ | U+0024 | Dollar sign
% | U+0025 | Percent sign
& | U+0026 | Ampersand
' | U+0027 | Apostrophe
( | U+0028 | Left parenthesis
) | U+0029 | Right parenthesis
* | U+002A | Asterisk
+ | U+002B | Plus sign
, | U+002C | Comma
- | U+002D | Hyphen-minus
. | U+002E | Full stop
/ | U+002F | Solidus
Codepoint Character Unicode Description
€ | U+20AC | Euro sign
‚ | U+201A | Single low-9 quotation mark
ƒ | U+0192 | Latin small letter f with hook (Florin)
„ | U+201E | Double low-9 quotation mark
… | U+2026 | Horizontal ellipsis
† | U+2020 | Dagger
‡ | U+2021 | Double dagger
ˆ | U+02C6 | Modifier letter circumflex accent
‰ | U+2030 | Per mille sign
Š | U+0160 | Latin capital letter S with caron
... [Additional extended characters omitted for brevity] ...

Microsoft and the Unicode Consortium note that code points at positions 81, 8D, 8F, 90, and 9D remain unassigned. Nevertheless, the Windows API function MultiByteToWideChar maps these slots to corresponding C0 and C1 control codes. This mapping behavior is documented within the "best fit" character mapping guidelines.

OS/2 extensions (Code page 1004)

The Code page 1004 (CCSID 1004), also known as "Windows Extended," is supported by the OS/2 operating system. This character set is largely similar to code page 1252, with the exception that certain C0 control characters are substituted by diacritic marks.

Template:Chset-left1 Template:Chset-ctrl1 Template:Chset-ctrl1 Template:Chset-ctrl1 Template:Chset-ctrl1 Template:Chset-cell1 Template:Chset-cell1 Template:Chset-cell1 Template:Chset-ctrl1 Template:Chset-cell1 Template:Chset-ctrl1 Template:Chset-cell1 Template:Chset-cell1 Template:Chset-cell1 Template:Chset-ctrl1 Template:Chset-ctrl1 Template:Chset-ctrl1

MS-DOS extensions (rare)

A seldom-used variation of code page 1252 features graphical characters in the 0x00 to 0x1f range, intended for box drawing purposes. This variant was employed by software such as MSDOS Edit and Codeview. Intel Corporation utilized this specific code page during the mid-1990s for an Install/Recovery disk image tool associated with its P6 User Test Program hardware, primarily distributed within the EMEA (Europe, Middle East, and Africa) territories. Subsequently, these utilities adopted code page 850 instead.

Template:Chset-left1 Template:Chset-cell1 Template:Chset-cell1 Template:Chset-cell1 Template:Chset-cell1 Template:Chset-cell1 Template:Chset-cell1 Template:Chset-cell1 Template:Chset-cell1 Template:Chset-cell1 Template:Chset-cell1 (continued...)


See also

Notes


External links