Windows-1258, znane także jako CP-1258, bądź WinVietnamese, jest 8–bitowym kodowaniem znaków zaprojektowanym do pokrycia języka wietnamskiego, jest używane w systemie Microsoft Windows. Korzysta z łączonych znaków diakrytycznych. Nie jest kompatybilne z kodowaniem VISCII, jest natomiast podobne do Windows-1252, różniąc się brakującymi znakami „Š” i „Ž” (które do CP1252 zostały dodane później), czterema literami z diakrytykami zastąpionymi samymi łączonymi znakami diakrytycznymi, oraz kilkoma innymi zmienionymi kombinacjami litera/znak diakrytyczny.

Użycie łączonych diakrytyków spowodowało, że Windows-1258 może pokryć dużą liczbę kombinacji litera/znak diakrytyczny z języka wietnamskiego bez konieczności uszczuplenia pokrycia symboli, bądź znaków kontrolnych.

Porównanie z Windows-1252 edytuj

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

Gdzie „NZ” oznacza znak niezdefiniowany w kodowaniu, „Znak” oznacza znak wspólny dla obydwu kodowań, „” to łączony znak diakrytyczny, a „   ” to kontrolny znak formatujący o zerowej szerokości.

Tablica kodów edytuj

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

Windows-1258
  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 NZ NZ
9x NZ ˜ NZ œ 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.

ZK” oznacza znak kontrolny.

Mapowanie na Unicode edytuj

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

Windows-1258
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+0102 0xE3 ă U+0103
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 NZ 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+0300 0xEC ◌́ U+0301
0x8D NZ 0xAD SHY U+00AD 0xCD Í U+00CD 0xED í U+00ED
0x8E NZ 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+0110 0xF0 đ U+0111
0x91 U+2018 0xB1 ± U+00B1 0xD1 Ñ U+00D1 0xF1 ñ U+00F1
0x92 U+2019 0xB2 ² U+00B2 0xD2 ◌̉ U+0309 0xF2 ◌̣ U+0323
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+01A0 0xF5 ơ U+01A1
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 NZ 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+01AF 0xFD ư U+01B0
0x9E NZ 0xBE ¾ U+00BE 0xDE ◌̃ U+0303 0xFE U+20AB
0x9F Ÿ U+0178 0xBF ¿ U+00BF 0xDF ß U+00DF 0xFF ÿ U+00FF

Linki zewnętrzne edytuj