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
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
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
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 |