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.
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
|
Linki zewnętrzne