CP852

CP852 (Code page 852, CP 852, IBM 852, OEM 852, MS-DOS Latin 2, PC Latin 2, Slavic (Latin II)) – 8-bitowe kodowanie znaków stosowane w systemach operacyjnych MS-DOS, PC-DOS, DR-DOS i FreeDOS, w zamyśle mające zawierać znaki języków krajów Europy Wschodniej opartych na alfabecie łacińskim. Analogicznie jak w przypadku kodowania CP850, niektóre litery ze znakami diakrytycznymi zastąpiły niektóre istniejące w CP437 znaki semigrafiki i symbole matematyczne. Od czasu rozpowszechnienia się systemów operacyjnych Windows 3.x, a zwłaszcza Windows 95 i Windows NT 4.0, wykorzystujących kodowanie Windows-1250 i (w różnym stopniu) unikod, znaczenie kodowania CP852 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.

Historia

Strona kodowa CP852 po raz pierwszy pojawiła się w systemie MS-DOS w wersji 5.0, wydanej we wrześniu 1991 r.

Zestaw znaków

Kodowanie CP852 zawiera litery ze znakami diakrytycznymi używane w następujących językach: albańskim, białoruskim (Łacinka), bośniackim, chorwackim, czeskim, irlandzkim, dolno- i górnołużyckim, niemieckim, polskim, rumuńskim (patrz poniżej), słowackim, słoweńskim, turkmeńskim i węgierskim.

Kodowanie to zostało zaprojektowane z myślą o możliwie najpełniejszym pokryciu języków dawnego bloku sowieckiego używających alfabetu łacińskiego. Wbrew jednej z nazw (kodowanie języków słowiańskich) zawiera litery używane w języku albańskim (należącym do grupy języków ilirskich), niemieckim (należącym do grupy języków germańskich), językiem rumuńskim (należącym do grupy języków romańskich) i węgierskim (należącym do grupy języków ugrofińskich), a nie pozwala na użycie z językami opartymi na cyrylicy. Nie zawiera wszystkich znaków używanych w poprawnej typografii języka rumuńskiego.

Braki znaków

Kodowanie CP852 nie zawiera cudzysłowów używanych w typografii języków obsługiwanych przez to kodowanie (np. stosowanych w Polsce «„» i «”»). Brak również czterech znaków używanych w języku rumuńskim, pisanych z przecinkiem pod spodem:

  • 0x0218 LATIN CAPITAL LETTER S WITH COMMA BELOW
  • 0x0219 LATIN SMALL LETTER S WITH COMMA BELOW
  • 0x021A LATIN CAPITAL LETTER T WITH COMMA BELOW
  • 0x021B LATIN SMALL LETTER T WITH COMMA BELOW.

Przyjęto, że będą stosowane analogiczne litery z cedillą:

  • 0x015E LATIN CAPITAL LETTER S WITH CEDILLA
  • 0x015F LATIN SMALL LETTER S WITH CEDILLA
  • 0x0162 LATIN CAPITAL LETTER T WITH CEDILLA
  • 0x0163 LATIN SMALL LETTER T WITH CEDILLA

W czasach projektowania kodowania CP852 uznawano, że przecinek pod spodem jest typograficzną odmianą cedilli, nie osobnym znakiem diakrytycznym.

Tablica kodów

CP852
    x0     x1     x2     x3     x4     x5     x6     x7     x8     x9     xA     xB     xC     xD     xE     xF  
0x NULL
1x §
2x SP!" #$ %&' ()*+ Przecinek,-./
3x 01 2 34 5 67 89: ; <= >?
4x @ABCD EFG HIJK LMNO
5x PQRST UVWXYZ [ \ ] ^_
6x `ab cd efg h ijk lmno
7x pqr st uvw xyz { | } ~
8x Çüé âä ůćç ł ëŐő îŹÄĆ
9x ÉĹĺ ôö ĽľŚ ś ÖÜŤ ťŁ ×č
Ax áíó úĄ ąŽž Ę ę¬ź Čş«»
Bx ÁÂĚ Ş Ż ż
Cx Ăă ¤
Dx đĐĎ Ëď ŇÍÎ ě Ţ Ů
Ex ÓßÔ Ńń ňŠš Ŕ ÚŕŰ ýÝţ´
Fx SHY ˝˛ˇ ˘§÷ ¸° ¨˙ű Ř ř 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 CP852. Tabela zawiera wyłącznie znaki z górnego zakresu (dolny zakres, czyli pozycje 0x00 ÷ 0x7F jest identyczny z ASCII. Wszystkie kody podane jako szesnastkowe.

CP852
CP852 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 ů0x016F LATIN SMALL LETTER U WITH RING ABOVE
0x86 ć0x0107LATIN SMALL LETTER C WITH ACUTE
0x87 ç0x00E7LATIN SMALL LETTER C WITH CEDILLA
0x88 ł0x0142LATIN SMALL LETTER L WITH STROKE
0x89 ë0x00EBLATIN SMALL LETTER E WITH DIAERESIS
0x8A Ő0x0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
0x8B ő0x0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE
0x8C î0x00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
0x8D Ź0x0179LATIN CAPITAL LETTER Z WITH ACUTE
0x8E Ä0x00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
0x8F Ć0x0106LATIN CAPITAL LETTER C WITH ACUTE
0x90 É0x00C9LATIN CAPITAL LETTER E WITH ACUTE
0x91 Ĺ0x0139LATIN CAPITAL LETTER L WITH ACUTE
0x92 ĺ0x013ALATIN SMALL LETTER L WITH ACUTE
0x93 ô0x00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
0x94 ö0x00F6LATIN SMALL LETTER O WITH DIAERESIS
0x95 Ľ0x013DLATIN CAPITAL LETTER L WITH CARON
0x96 ľ0x013ELATIN SMALL LETTER L WITH CARON
0x97 Ś0x015ALATIN CAPITAL LETTER S WITH ACUTE
0x98 ś0x015BLATIN SMALL LETTER S WITH ACUTE
0x99 Ö0x00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
0x9A Ü0x00DC LATIN CAPITAL LETTER U WITH DIAERESIS
0x9B Ť0x0164LATIN CAPITAL LETTER T WITH CARON
0x9C ť0x0165LATIN SMALL LETTER T WITH CARON
0x9D Ł0x0141LATIN CAPITAL LETTER L WITH STROKE
0x9E ×0x00D7MULTIPLICATION SIGN
0x9F č0x010DLATIN SMALL LETTER C WITH CARON
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 Ą0x0104LATIN CAPITAL LETTER A WITH OGONEK
0xA5 ą0x0105LATIN SMALL LETTER A WITH OGONEK
0xA6 Ž0x017DLATIN CAPITAL LETTER Z WITH CARON
0xA7 ž0x017ELATIN SMALL LETTER Z WITH CARON
0xA8 Ę0x0118LATIN CAPITAL LETTER E WITH OGONEK
0xA9 ę0x0119LATIN SMALL LETTER E WITH OGONEK
0xAA ¬0x00ACNOT SIGN
0xAB ź0x017ALATIN SMALL LETTER Z WITH ACUTE
0xAC Č0x010CLATIN CAPITAL LETTER C WITH CARON
0xAD ş0x015FLATIN SMALL LETTER S WITH CEDILLA
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 Á0x00C1LATIN CAPITAL LETTER A WITH ACUTE
0xB6 Â0x00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xB7 Ě0x011ALATIN CAPITAL LETTER E WITH CARON
0xB8 Ş0x015ELATIN CAPITAL LETTER S WITH CEDILLA
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 Ż0x017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
0xBE ż0x017CLATIN SMALL LETTER Z WITH DOT ABOVE
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 Ă0x0102LATIN CAPITAL LETTER A WITH BREVE
0xC7 ă0x0103LATIN SMALL LETTER A WITH BREVE
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 ¤0x00A4CURRENCY SIGN
0xD0 đ0x0111LATIN SMALL LETTER D WITH STROKE
0xD1 Đ0x0110LATIN CAPITAL LETTER D WITH STROKE
0xD2 Ď0x010ELATIN CAPITAL LETTER D WITH CARON
0xD3 Ë0x00CB LATIN CAPITAL LETTER E WITH DIAERESIS
0xD4 ď0x010FLATIN SMALL LETTER D WITH CARON
0xD5 Ň0x0147LATIN CAPITAL LETTER N WITH CARON
0xD6 Í0x00CDLATIN CAPITAL LETTER I WITH ACUTE
0xD7 Î0x00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xD8 ě0x011BLATIN SMALL LETTER E WITH CARON
0xD9 0x2518BOX DRAWINGS LIGHT UP AND LEFT
0xDA 0x250CBOX DRAWINGS LIGHT DOWN AND RIGHT
0xDB 0x2588FULL BLOCK
0xDC 0x2584LOWER HALF BLOCK
0xDD Ţ0x0162LATIN CAPITAL LETTER T WITH CEDILLA
0xDE Ů0x016E LATIN CAPITAL LETTER U WITH RING ABOVE
0xDF 0x2580UPPER HALF BLOCK
0xE0 Ó0x00D3LATIN CAPITAL LETTER O WITH ACUTE
0xE1 ß0x00DFLATIN SMALL LETTER SHARP S
0xE2 Ô0x00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xE3 Ń0x0143LATIN CAPITAL LETTER N WITH ACUTE
0xE4 ń0x0144LATIN SMALL LETTER N WITH ACUTE
0xE5 ň0x0148LATIN SMALL LETTER N WITH CARON
0xE6 Š0x0160LATIN CAPITAL LETTER S WITH CARON
0xE7 š0x0161LATIN SMALL LETTER S WITH CARON
0xE8 Ŕ0x0154LATIN CAPITAL LETTER R WITH ACUTE
0xE9 Ú0x00DALATIN CAPITAL LETTER U WITH ACUTE
0xEA ŕ0x0155LATIN SMALL LETTER R WITH ACUTE
0xEB Ű0x0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
0xEC ý0x00FDLATIN SMALL LETTER Y WITH ACUTE
0xED Ý0x00DDLATIN CAPITAL LETTER Y WITH ACUTE
0xEE ţ0x0163LATIN SMALL LETTER T WITH CEDILLA
0xEF ´0x00B4ACUTE ACCENT
0xF0 SHY0x00ADSOFT HYPHEN
0xF1 ˝0x02DDDOUBLE ACUTE ACCENT
0xF2 ˛0x02DBOGONEK
0xF3 ˇ0x02C7CARON
0xF4 ˘0x02D8BREVE
0xF5 §0x00A7SECTION SIGN
0xF6 ÷0x00F7DIVISION SIGN
0xF7 ¸0x00B8CEDILLA
0xF8 °0x00B0DEGREE SIGN
0xF9 ¨0x00A8DIAERESIS
0xFA ˙0x02D9DOT ABOVE
0xFB ű0x0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE
0xFC Ř0x0158LATIN CAPITAL LETTER R WITH CARON
0xFD ř0x0159LATIN SMALL LETTER R WITH CARON
0xFE 0x25A0BLACK SQUARE
0xFF NBSP0x00A0NO-BREAK SPACE

Rozmieszczenie polskich znaków

CP852
Małe litery:
ą 0xA5 ł 0x88 ś 0x98
ć 0x86 ń 0xE4 ź 0xAB
ę 0xA9 ó 0xA2 ż 0xBE
Wielkie litery:
Ą 0xA4 Ł 0x9D Ś 0x97
Ć 0x8F Ń 0xE3 Ź 0x8D
Ę 0xA8 Ó 0xE0 Ż 0xBD
Znaki diakrytyczne:
kreska 0xEF ogonek 0xF2 kropka 0xFA

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

Pozycja MS-DOS CP852 IBM CP852
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
0xAA 0x00ACNOT SIGN (¬) NZ

Objaśnienia:

Bibliografia