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.
![](http://upload.wikimedia.org/wikipedia/commons/f/f8/Codepage-437.png)
Historia
[edytuj | edytuj kod]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
[edytuj | edytuj kod]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
[edytuj | edytuj kod]Kodowanie to nie zawiera znaków cudzysłowów stosowanych w typografii języka angielskiego ani niemieckiego.
Tablica kodów
[edytuj | edytuj kod]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
[edytuj | edytuj kod]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 | Ç | 0x00C7 | LATIN CAPITAL LETTER C WITH CEDILLA |
0x81 | ü | 0x00FC | LATIN SMALL LETTER U WITH DIAERESIS |
0x82 | é | 0x00E9 | LATIN SMALL LETTER E WITH ACUTE |
0x83 | â | 0x00E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX |
0x84 | ä | 0x00E4 | LATIN SMALL LETTER A WITH DIAERESIS |
0x85 | à | 0x00E0 | LATIN SMALL LETTER A WITH GRAVE |
0x86 | å | 0x00E5 | LATIN SMALL LETTER A WITH RING ABOVE |
0x87 | ç | 0x00E7 | LATIN SMALL LETTER C WITH CEDILLA |
0x88 | ê | 0x00EA | LATIN SMALL LETTER E WITH CIRCUMFLEX |
0x89 | ë | 0x00EB | LATIN SMALL LETTER E WITH DIAERESIS |
0x8A | è | 0x00E8 | LATIN SMALL LETTER E WITH GRAVE |
0x8B | ï | 0x00EF | LATIN SMALL LETTER I WITH DIAERESIS |
0x8C | î | 0x00EE | LATIN SMALL LETTER I WITH CIRCUMFLEX |
0x8D | ì | 0x00EC | LATIN SMALL LETTER I WITH GRAVE |
0x8E | Ä | 0x00C4 | LATIN CAPITAL LETTER A WITH DIAERESIS |
0x8F | Å | 0x00C5 | LATIN CAPITAL LETTER A WITH RING ABOVE |
0x90 | É | 0x00C9 | LATIN CAPITAL LETTER E WITH ACUTE |
0x91 | æ | 0x00E6 | LATIN SMALL LIGATURE AE |
0x92 | Æ | 0x00C6 | LATIN CAPITAL LIGATURE AE |
0x93 | ô | 0x00F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX |
0x94 | ö | 0x00F6 | LATIN SMALL LETTER O WITH DIAERESIS |
0x95 | ò | 0x00F2 | LATIN SMALL LETTER O WITH GRAVE |
0x96 | û | 0x00FB | LATIN SMALL LETTER U WITH CIRCUMFLEX |
0x97 | ù | 0x00F9 | LATIN SMALL LETTER U WITH GRAVE |
0x98 | ÿ | 0x00FF | LATIN SMALL LETTER Y WITH DIAERESIS |
0x99 | Ö | 0x00D6 | LATIN CAPITAL LETTER O WITH DIAERESIS |
0x9A | Ü | 0x00DC | LATIN CAPITAL LETTER U WITH DIAERESIS |
0x9B | ¢ | 0x00A2 | CENT SIGN |
0x9C | £ | 0x00A3 | POUND SIGN |
0x9D | ¥ | 0x00A5 | YEN SIGN |
0x9E | ₧ | 0x20A7 | PESETA SIGN |
0x9F | ƒ | 0x0192 | LATIN SMALL LETTER F WITH HOOK |
0xA0 | á | 0x00E1 | LATIN SMALL LETTER A WITH ACUTE |
0xA1 | í | 0x00ED | LATIN SMALL LETTER I WITH ACUTE |
0xA2 | ó | 0x00F3 | LATIN SMALL LETTER O WITH ACUTE |
0xA3 | ú | 0x00FA | LATIN SMALL LETTER U WITH ACUTE |
0xA4 | ñ | 0x00F1 | LATIN SMALL LETTER N WITH TILDE |
0xA5 | Ñ | 0x00D1 | LATIN CAPITAL LETTER N WITH TILDE |
0xA6 | ª | 0x00AA | FEMININE ORDINAL INDICATOR |
0xA7 | º | 0x00BA | MASCULINE ORDINAL INDICATOR |
0xA8 | ¿ | 0x00BF | INVERTED QUESTION MARK |
0xA9 | ⌐ | 0x2310 | REVERSED NOT SIGN |
0xAA | ¬ | 0x00AC | NOT SIGN |
0xAB | ½ | 0x00BD | VULGAR FRACTION ONE HALF |
0xAC | ¼ | 0x00BC | VULGAR FRACTION ONE QUARTER |
0xAD | ¡ | 0x00A1 | INVERTED EXCLAMATION MARK |
0xAE | « | 0x00AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK |
0xAF | » | 0x00BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK |
0xB0 | ░ | 0x2591 | LIGHT SHADE |
0xB1 | ▒ | 0x2592 | MEDIUM SHADE |
0xB2 | ▓ | 0x2593 | DARK SHADE |
0xB3 | │ | 0x2502 | BOX 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 | ║ | 0x2551 | BOX DRAWINGS DOUBLE VERTICAL |
0xBB | ╗ | 0x2557 | BOX DRAWINGS DOUBLE DOWN AND LEFT |
0xBC | ╝ | 0x255D | BOX DRAWINGS DOUBLE UP AND LEFT |
0xBD | ╜ | 0x255C | BOX DRAWINGS UP DOUBLE AND LEFT SINGLE |
0xBE | ╛ | 0x255B | BOX DRAWINGS UP SINGLE AND LEFT DOUBLE |
0xBF | ┐ | 0x2510 | BOX DRAWINGS LIGHT DOWN AND LEFT |
0xC0 | └ | 0x2514 | BOX 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 | ─ | 0x2500 | BOX 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 | ╚ | 0x255A | BOX DRAWINGS DOUBLE UP AND RIGHT |
0xC9 | ╔ | 0x2554 | BOX 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 | ═ | 0x2550 | BOX 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 | ┘ | 0x2518 | BOX DRAWINGS LIGHT UP AND LEFT |
0xDA | ┌ | 0x250C | BOX DRAWINGS LIGHT DOWN AND RIGHT |
0xDB | █ | 0x2588 | FULL BLOCK |
0xDC | ▄ | 0x2584 | LOWER HALF BLOCK |
0xDD | ▌ | 0x258C | LEFT HALF BLOCK |
0xDE | ▐ | 0x2590 | RIGHT HALF BLOCK |
0xDF | ▀ | 0x2580 | UPPER HALF BLOCK |
0xE0 | α | 0x03B1 | GREEK SMALL LETTER ALPHA |
0xE1 | ß | 0x00DF | LATIN SMALL LETTER SHARP S |
0xE2 | Γ | 0x0393 | GREEK CAPITAL LETTER GAMMA |
0xE3 | π | 0x03C0 | GREEK SMALL LETTER PI |
0xE4 | Σ | 0x03A3 | GREEK CAPITAL LETTER SIGMA |
0xE5 | σ | 0x03C3 | GREEK SMALL LETTER SIGMA |
0xE6 | µ | 0x00B5 | MICRO SIGN |
0xE7 | τ | 0x03C4 | GREEK SMALL LETTER TAU |
0xE8 | Φ | 0x03A6 | GREEK CAPITAL LETTER PHI |
0xE9 | Θ | 0x0398 | GREEK CAPITAL LETTER THETA |
0xEA | Ω | 0x03A9 | GREEK CAPITAL LETTER OMEGA |
0xEB | δ | 0x03B4 | GREEK SMALL LETTER DELTA |
0xEC | ∞ | 0x221E | INFINITY |
0xED | φ | 0x03C6 | GREEK SMALL LETTER PHI |
0xEE | ε | 0x03B5 | GREEK SMALL LETTER EPSILON |
0xEF | ∩ | 0x2229 | INTERSECTION |
0xF0 | ≡ | 0x2261 | IDENTICAL TO |
0xF1 | ± | 0x00B1 | PLUS-MINUS SIGN |
0xF2 | ≥ | 0x2265 | GREATER-THAN OR EQUAL TO |
0xF3 | ≤ | 0x2264 | LESS-THAN OR EQUAL TO |
0xF4 | ⌠ | 0x2320 | TOP HALF INTEGRAL |
0xF5 | ⌡ | 0x2321 | BOTTOM HALF INTEGRAL |
0xF6 | ÷ | 0x00F7 | DIVISION SIGN |
0xF7 | ≈ | 0x2248 | ALMOST EQUAL TO |
0xF8 | ° | 0x00B0 | DEGREE SIGN |
0xF9 | ∙ | 0x2219 | BULLET OPERATOR |
0xFA | · | 0x00B7 | MIDDLE DOT |
0xFB | √ | 0x221A | SQUARE ROOT |
0xFC | ⁿ | 0x207F | SUPERSCRIPT LATIN SMALL LETTER N |
0xFD | ² | 0x00B2 | SUPERSCRIPT TWO |
0xFE | ■ | 0x25A0 | BLACK SQUARE |
0xFF | NBSP | 0x00A0 | NO-BREAK SPACE |
Różnice między kodowaniami MS-DOS CP437 a IBM CP437
[edytuj | edytuj kod]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 | 0x00B5 | MICRO SIGN (µ) | 0x03BC | GREEK SMALL LETTER MU (μ) |
Objaśnienia:
- pozycje na fioletowym tle są znakami kontrolnymi