Windows-1252

strona kodowa Windows

Windows-1252, znane także jako CP-1252, jest 8–bitowym kodowaniem znaków będącym nadzbiorem kodowania ISO-8859-1, różniącym się od niego tym, że używane są miejsca znaków kontrolnych z przedziału 0x80–0x9F. Windows-1252 jest stosowane w systemach Microsoft Windows z angielskojęzycznymi bądź zachodnioeuropejskimi ustawieniami językowymi.

Wiele przeglądarek internetowych traktuje ISO-8859-1 jako Windows-1252 (kody kontrolne są zabronione w HTML), więc znaki z przedziału kodów kontrolnych widziane są na stronach internetowych jako wartości z CP-1252.

Powszechnym nieporozumieniem jest uważanie, że ANSI jest jednoznaczne z tą stroną kodową. Tak naprawdę Windows używa określenia „ANSI” w odniesieniu do kodowania systemowego, czyli w anglojęzycznych lub zachodnioeuropejskich wersjach systemów Windows będzie to Windows-1252. Dla polskojęzycznej wersji systemu będzie to Windows-1250.

Porównanie z ISO 8859-1

edytuj
Hex CP-1252 ISO 8859-1 Hex CP-1252 ISO 8859-1 Hex CP-1252 ISO 8859-1 Hex CP-1252 ISO 8859-1
0x80 ZK 0xA0   0xC0 À 0xE0 à
0x81 NZ ZK 0xA1 ¡ 0xC1 Á 0xE1 á
0x82 ZK 0xA2 ¢ 0xC2 Â 0xE2 â
0x83 ƒ ZK 0xA3 £ 0xC3 Ã 0xE3 ã
0x84 ZK 0xA4 ¤ 0xC4 Ä 0xE4 ä
0x85 ZK 0xA5 ¥ 0xC5 Å 0xE5 å
0x86 ZK 0xA6 ¦ 0xC6 Æ 0xE6 æ
0x87 ZK 0xA7 § 0xC7 Ç 0xE7 ç
0x88 ˆ ZK 0xA8 ¨ 0xC8 È 0xE8 è
0x89 ZK 0xA9 © 0xC9 É 0xE9 é
0x8A Š ZK 0xAA ª 0xCA Ê 0xEA ê
0x8B ZK 0xAB « 0xCB Ë 0xEB ë
0x8C Œ ZK 0xAC ¬ 0xCC Ì 0xEC ì
0x8D NZ ZK 0xAD ­ 0xCD Í 0xED í
0x8E Ž ZK 0xAE ® 0xCE Î 0xEE î
0x8F NZ ZK 0xAF ¯ 0xCF Ï 0xEF ï
0x90 NZ ZK 0xB0 ° 0xD0 Ð 0xF0 ð
0x91 ZK 0xB1 ± 0xD1 Ñ 0xF1 ñ
0x92 ZK 0xB2 ² 0xD2 Ò 0xF2 ò
0x93 ZK 0xB3 ³ 0xD3 Ó 0xF3 ó
0x94 ZK 0xB4 ´ 0xD4 Ô 0xF4 ô
0x95 ZK 0xB5 µ 0xD5 Õ 0xF5 õ
0x96 ZK 0xB6 0xD6 Ö 0xF6 ö
0x97 ZK 0xB7 · 0xD7 × 0xF7 ÷
0x98 ˜ ZK 0xB8 ¸ 0xD8 Ø 0xF8 ø
0x99 ZK 0xB9 ¹ 0xD9 Ù 0xF9 ù
0x9A š ZK 0xBA º 0xDA Ú 0xFA ú
0x9B ZK 0xBB » 0xDB Û 0xFB û
0x9C œ ZK 0xBC ¼ 0xDC Ü 0xFC ü
0x9D NZ ZK 0xBD ½ 0xDD Ý 0xFD ý
0x9E ž ZK 0xBE ¾ 0xDE Þ 0xFE þ
0x9F Ÿ ZK 0xBF ¿ 0xDF ß 0xFF ÿ

Gdzie „NZ” oznacza znak niezdefiniowany w kodowaniu, „ZK” oznacza znak kontrolny, a „Znak” oznacza znak wspólny dla obydwu kodowań.

Tablica kodów

edytuj

Poniższa tabela przedstawia znaki i ich szesnastkowe kody w Windows-1252.

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x Znaki kontrolne
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 { | } ~ ZK
8x NZ ƒ ˆ Š Œ NZ Ž NZ
9x NZ ˜ š œ NZ ž Ÿ
Ax NBSP ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ SHY ® ¯
Bx ° ± ² ³ ´ µ · ¸ ¹ º » ¼ ½ ¾ ¿
Cx À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
Dx Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
Ex à á â ã ä å æ ç è é ê ë ì í î ï
Fx ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ

W powyższej tabeli znak o kodzie 0x20 to zwykła spacja, 0xA0 to twarda spacja, a znak 0xAD to miękki dywiz. Według informacji dostępnych na stronach Microsoftu i konsorcjum Unicode, miejsca o kodach 0x81, 0x8D, 0x8F, 0x90 i 0x9D są nieużywane, jednak, pomimo to odwołania w Windows API, odpowiedzialne za konwertowanie znaków ze stron kodowych na Unicode, mapują te wartości na odpowiadające im kody kontrolne C1. Symbol Euro (€) z pozycji 0x80 był nieobecny we wcześniejszych wersjach tej strony kodowej, tak jak S i Z z haczykiem (Š, š, Ž, ž).

Mapowanie na Unicode

edytuj

Poniższa tabela przedstawia miejsca znaków z Windows-1252 w Unicode.

Hex Znak Unicode Hex Znak Unicode Hex Znak Unicode Hex Znak Unicode
0x80 U+20AC 0xA0 NBSP U+00A0 0xC0 À U+00C0 0xE0 à U+00E0
0x81 NZ 0xA1 ¡ U+00A1 0xC1 Á U+00C1 0xE1 á U+00E1
0x82 U+201A 0xA2 ¢ U+00A2 0xC2 Â U+00C2 0xE2 â U+00E2
0x83 ƒ U+0192 0xA3 £ U+00A3 0xC3 Ã U+00C3 0xE3 ã U+00E3
0x84 U+201E 0xA4 ¤ U+00A4 0xC4 Ä U+00C4 0xE4 ä U+00E4
0x85 U+2026 0xA5 ¥ U+00A5 0xC5 Å U+00C5 0xE5 å U+00E5
0x86 U+2020 0xA6 ¦ U+00A6 0xC6 Æ U+00C6 0xE6 æ U+00E6
0x87 U+2021 0xA7 § U+00A7 0xC7 Ç U+00C7 0xE7 ç U+00E7
0x88 ˆ U+02C6 0xA8 ¨ U+00A8 0xC8 È U+00C8 0xE8 è U+00E8
0x89 U+2030 0xA9 © U+00A9 0xC9 É U+00C9 0xE9 é U+00E9
0x8A Š U+0160 0xAA ª U+00AA 0xCA Ê U+00CA 0xEA ê U+00EA
0x8B U+2039 0xAB « U+00AB 0xCB Ë U+00CB 0xEB ë U+00EB
0x8C Œ U+0152 0xAC ¬ U+00AC 0xCC Ì U+00CC 0xEC ì U+00EC
0x8D NZ 0xAD SHY U+00AD 0xCD Í U+00CD 0xED í U+00ED
0x8E Ž U+017D 0xAE ® U+00AE 0xCE Î U+00CE 0xEE î U+00EE
0x8F NZ 0xAF ¯ U+00AF 0xCF Ï U+00CF 0xEF ï U+00EF
0x90 NZ 0xB0 ° U+00B0 0xD0 Ð U+00D0 0xF0 ð U+00F0
0x91 U+2018 0xB1 ± U+00B1 0xD1 Ñ U+00D1 0xF1 ñ U+00F1
0x92 U+2019 0xB2 ² U+00B2 0xD2 Ò U+00D2 0xF2 ò U+00F2
0x93 U+201C 0xB3 ³ U+00B3 0xD3 Ó U+00D3 0xF3 ó U+00F3
0x94 U+201D 0xB4 ´ U+00B4 0xD4 Ô U+00D4 0xF4 ô U+00F4
0x95 U+2022 0xB5 µ U+00B5 0xD5 Õ U+00D5 0xF5 õ U+00F5
0x96 U+2013 0xB6 U+00B6 0xD6 Ö U+00D6 0xF6 ö U+00F6
0x97 U+2014 0xB7 · U+00B7 0xD7 × U+00D7 0xF7 ÷ U+00F7
0x98 ˜ U+02DC 0xB8 ¸ U+00B8 0xD8 Ø U+00D8 0xF8 ø U+00F8
0x99 U+2122 0xB9 ¹ U+00B9 0xD9 Ù U+00D9 0xF9 ù U+00F9
0x9A š U+0161 0xBA º U+00BA 0xDA Ú U+00DA 0xFA ú U+00FA
0x9B U+203A 0xBB » U+00BB 0xDB Û U+00DB 0xFB û U+00FB
0x9C œ U+0153 0xBC ¼ U+00BC 0xDC Ü U+00DC 0xFC ü U+00FC
0x9D NZ 0xBD ½ U+00BD 0xDD Ý U+00DD 0xFD ý U+00FD
0x9E ž U+017E 0xBE ¾ U+00BE 0xDE Þ U+00DE 0xFE þ U+00FE
0x9F Ÿ U+0178 0xBF ¿ U+00BF 0xDF ß U+00DF 0xFF ÿ U+00FF

Linki zewnętrzne

edytuj