CP437

CP437 – 8-bitowe kodowanie znaków stosowane w systemach operacyjnych MS-DOS, PC-DOS, DR-DOS i FreeDOS. Od czasu rozpowszechnienia się systemów operacyjnych Windows 3.x, a zwłaszcza Windows 95 i Windows NT 4.0, wykorzystujących kodowanie Windows-1252 i (w różnym stopniu) unikod, znaczenie kodowania CP437 zaczęło bardzo szybko maleć, choć nadal jest ono wykorzystywane w aplikacjach pisanych dla systemu operacyjnego DOS lub nieposiadających interfejsu graficznego (przeznaczonych do uruchamiania w oknie DOS względnie oknie konsoli), w tym programach księgowych, magazynowych itp.

Zestaw znaków CP437 wygenerowany przez IBM PC

Historia

Strona kodowa CP437 po raz pierwszy była użyta w pierwszej wersji systemu operacyjnego MS-DOS (1.0), wypuszczonego na rynek jako system operacyjny komputera domowego IBM PC, którego premiera miała miejsce 12 sierpnia 1981 r.

Zestaw znaków

Kodowanie CP437 zostało zaprojektowane z myślą o użyciu na rynku amerykańskim, i choć zawiera 33 litery ze znakami diakrytycznymi, ich dobór robi wrażenie przypadkowego. Zestaw w całości pokrywa (oprócz rzecz jasna języka angielskiego) jedynie język niemiecki (znak 0xE1 pełni podwójną funkcję, i mimo położenia wśród liter greckich mapowany jest na unikod jako niemiecka litera „ostre s”).

Kody 0x00–0x1F oraz 0x7F mają podwójną funkcję: mogą pełnić rolę znaków sterujących, ale również mogą reprezentować znaki graficzne.

Braki znaków

Kodowanie to nie zawiera znaków cudzysłowów stosowanych w typografii języka angielskiego ani niemieckiego.

Tablica kodów

CP437
    x0     x1     x2     x3     x4     x5     x6     x7     x8     x9     xA     xB     xC     xD     xE     xF  
0x NULL
1x §
2x SP ! " # $ % & ' ( ) * + , - . /
3x 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4x @ A B C D E F G H I J K L M N O
5x P Q R S T U V W X Y Z [ \ ] ^ _
6x ` a b c d e f g h i j k l m n o
7x p q r s t u v w x y z { | } ~
8x Ç ü é â ä à å ç ê ë è ï î ì Ä Å
9x É æ Æ ô ö ò û ù ÿ Ö Ü ¢ £ ¥ ƒ
Ax á í ó ú ñ Ñ ª º ¿ ¬ ½ ¼ ¡ « »
Bx
Cx
Dx
Ex α ß Γ π Σ σ µ τ Φ Θ Ω δ φ ε
Fx ± ÷ ° · ² NBSP

      znaki posiadają podwójną funkcję: mogą pełnić rolę znaków sterujących, ale również mogą reprezentować znaki graficzne

Mapowanie na unikod

Poniższa tabela przedstawia kody Unicode znaków zawartych w stronie kodowej CP437. Tabela zawiera wyłącznie znaki z górnego zakresu (dolny zakres, czyli pozycje 0x00–0x7F, jest identyczny z ASCII). Wszystkie kody podane jako szesnastkowe.

CP437
CP437 Znak Unicode Nazwa znaku
0x80 Ç0x00C7LATIN CAPITAL LETTER C WITH CEDILLA
0x81 ü0x00FCLATIN SMALL LETTER U WITH DIAERESIS
0x82 é0x00E9LATIN SMALL LETTER E WITH ACUTE
0x83 â0x00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
0x84 ä0x00E4LATIN SMALL LETTER A WITH DIAERESIS
0x85 à0x00E0LATIN SMALL LETTER A WITH GRAVE
0x86 å0x00E5 LATIN SMALL LETTER A WITH RING ABOVE
0x87 ç0x00E7LATIN SMALL LETTER C WITH CEDILLA
0x88 ê0x00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
0x89 ë0x00EBLATIN SMALL LETTER E WITH DIAERESIS
0x8A è0x00E8LATIN SMALL LETTER E WITH GRAVE
0x8B ï0x00EFLATIN SMALL LETTER I WITH DIAERESIS
0x8C î0x00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
0x8D ì0x00ECLATIN SMALL LETTER I WITH GRAVE
0x8E Ä0x00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
0x8F Å0x00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
0x90 É0x00C9LATIN CAPITAL LETTER E WITH ACUTE
0x91 æ0x00E6LATIN SMALL LIGATURE AE
0x92 Æ0x00C6LATIN CAPITAL LIGATURE AE
0x93 ô0x00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
0x94 ö0x00F6LATIN SMALL LETTER O WITH DIAERESIS
0x95 ò0x00F2LATIN SMALL LETTER O WITH GRAVE
0x96 û0x00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
0x97 ù0x00F9LATIN SMALL LETTER U WITH GRAVE
0x98 ÿ0x00FFLATIN SMALL LETTER Y WITH DIAERESIS
0x99 Ö0x00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
0x9A Ü0x00DC LATIN CAPITAL LETTER U WITH DIAERESIS
0x9B ¢0x00A2CENT SIGN
0x9C £0x00A3POUND SIGN
0x9D ¥0x00A5YEN SIGN
0x9E 0x20A7PESETA SIGN
0x9F ƒ0x0192LATIN SMALL LETTER F WITH HOOK
0xA0 á0x00E1LATIN SMALL LETTER A WITH ACUTE
0xA1 í0x00EDLATIN SMALL LETTER I WITH ACUTE
0xA2 ó0x00F3LATIN SMALL LETTER O WITH ACUTE
0xA3 ú0x00FALATIN SMALL LETTER U WITH ACUTE
0xA4 ñ0x00F1LATIN SMALL LETTER N WITH TILDE
0xA5 Ñ0x00D1LATIN CAPITAL LETTER N WITH TILDE
0xA6 ª0x00AAFEMININE ORDINAL INDICATOR
0xA7 º0x00BAMASCULINE ORDINAL INDICATOR
0xA8 ¿0x00BFINVERTED QUESTION MARK
0xA9 0x2310REVERSED NOT SIGN
0xAA ¬0x00ACNOT SIGN
0xAB ½0x00BDVULGAR FRACTION ONE HALF
0xAC ¼0x00BCVULGAR FRACTION ONE QUARTER
0xAD ¡0x00A1INVERTED EXCLAMATION MARK
0xAE « 0x00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xAF  »0x00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xB0 0x2591LIGHT SHADE
0xB1 0x2592MEDIUM SHADE
0xB2 0x2593DARK SHADE
0xB3 0x2502BOX DRAWINGS LIGHT VERTICAL
0xB4 0x2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT
0xB5 0x2561 BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
0xB6 0x2562 BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
0xB7 0x2556 BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
0xB8 0x2555 BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
0xB9 0x2563 BOX DRAWINGS DOUBLE VERTICAL AND LEFT
0xBA 0x2551BOX DRAWINGS DOUBLE VERTICAL
0xBB 0x2557BOX DRAWINGS DOUBLE DOWN AND LEFT
0xBC 0x255DBOX DRAWINGS DOUBLE UP AND LEFT
0xBD 0x255C BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
0xBE 0x255B BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
0xBF 0x2510BOX DRAWINGS LIGHT DOWN AND LEFT
0xC0 0x2514BOX DRAWINGS LIGHT UP AND RIGHT
0xC1 0x2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL
0xC2 0x252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
0xC3 0x251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT
0xC4 0x2500BOX DRAWINGS LIGHT HORIZONTAL
0xC5 0x253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
0xC6 0x255E BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
0xC7 0x255F BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
0xC8 0x255ABOX DRAWINGS DOUBLE UP AND RIGHT
0xC9 0x2554BOX DRAWINGS DOUBLE DOWN AND RIGHT
0xCA 0x2569 BOX DRAWINGS DOUBLE UP AND HORIZONTAL
0xCB 0x2566 BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
0xCC 0x2560 BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
0xCD 0x2550BOX DRAWINGS DOUBLE HORIZONTAL
0xCE 0x256C BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
0xCF 0x2567 BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
0xD0 0x2568 BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
0xD1 0x2564 BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
0xD2 0x2565 BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
0xD3 0x2559 BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
0xD4 0x2558 BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
0xD5 0x2552 BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
0xD6 0x2553 BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
0xD7 0x256B BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
0xD8 0x256A BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
0xD9 0x2518BOX DRAWINGS LIGHT UP AND LEFT
0xDA 0x250CBOX DRAWINGS LIGHT DOWN AND RIGHT
0xDB 0x2588FULL BLOCK
0xDC 0x2584LOWER HALF BLOCK
0xDD 0x258CLEFT HALF BLOCK
0xDE 0x2590RIGHT HALF BLOCK
0xDF 0x2580UPPER HALF BLOCK
0xE0 α0x03B1GREEK SMALL LETTER ALPHA
0xE1 ß0x00DFLATIN SMALL LETTER SHARP S
0xE2 Γ0x0393GREEK CAPITAL LETTER GAMMA
0xE3 π0x03C0GREEK SMALL LETTER PI
0xE4 Σ0x03A3GREEK CAPITAL LETTER SIGMA
0xE5 σ0x03C3GREEK SMALL LETTER SIGMA
0xE6 µ0x00B5MICRO SIGN
0xE7 τ0x03C4GREEK SMALL LETTER TAU
0xE8 Φ0x03A6GREEK CAPITAL LETTER PHI
0xE9 Θ0x0398GREEK CAPITAL LETTER THETA
0xEA Ω0x03A9GREEK CAPITAL LETTER OMEGA
0xEB δ0x03B4GREEK SMALL LETTER DELTA
0xEC 0x221EINFINITY
0xED φ0x03C6GREEK SMALL LETTER PHI
0xEE ε0x03B5GREEK SMALL LETTER EPSILON
0xEF 0x2229INTERSECTION
0xF0 0x2261IDENTICAL TO
0xF1 ±0x00B1PLUS-MINUS SIGN
0xF2 0x2265GREATER-THAN OR EQUAL TO
0xF3 0x2264LESS-THAN OR EQUAL TO
0xF4 0x2320TOP HALF INTEGRAL
0xF5 0x2321BOTTOM HALF INTEGRAL
0xF6 ÷0x00F7DIVISION SIGN
0xF7 0x2248ALMOST EQUAL TO
0xF8 °0x00B0DEGREE SIGN
0xF9 0x2219BULLET OPERATOR
0xFA ·0x00B7MIDDLE DOT
0xFB 0x221ASQUARE ROOT
0xFC 0x207FSUPERSCRIPT LATIN SMALL LETTER N
0xFD ²0x00B2SUPERSCRIPT TWO
0xFE 0x25A0BLACK SQUARE
0xFF NBSP0x00A0 NO-BREAK SPACE

Różnice między kodowaniami MS-DOS CP437 a IBM CP437

Pozycja MS-DOS CP437 IBM CP437
Kod Unicode znaku Nazwa znaku Kod Unicode znaku Nazwa znaku
0x1A 0x001A SUBSTITUTE 0x001C FILE SEPARATOR
0x1C 0x001C FILE SEPARATOR 0x007F DELETE
0x7F 0x007F DELETE 0x001A SUBSTITUTE
0xE6 0x00B5MICRO SIGN (µ)0x03BCGREEK SMALL LETTER MU (μ)

Objaśnienia:

Bibliografia