Существует пробел в моих знаниях о кодировках, кодировках и т. Д. На кодовых страницах и ISO/IEC 8859-15 (Latin-9) значение знака Euro (€) задается как 0x20AC - это 8364 в десятичной системе! Но как может быть, когда идея состоит в том, что любой из символов этой кодировки должен вписываться в один беззнаковый байт (то есть максимальное значение может быть 255)? US-ASCII занимает значения 0-127, а 128-255 - это то, где вариация была между разными кодировками символов.Как знак знака Euro может быть значением выше 0xFF в Win-1252 и Latin9?
Когда я ввожу текст в текстовый редактор (VIM):
a € b
И сохранить его в файл с кодировкой «latin9». Я вижу этот файл, состоящий из следующих байтов:
$ xxd euro-file.txt
0000000: 6120 e282 ac20 620a a ... b.
ИТАК:
0x61 = 'a' character
0x20 = space character
0xE282 = ???
0xAC20 = This is the value of the Euro symbol, but the bytes are backwards; the reference said the value should be 0x20AC
0x62 = 'b' character
Может кто-то пожалуйста, объясните, как символ Евро может иметь значение выше, чем 255? Почему написанные байты для символа Евро обращены назад (0xAC20 вместо 0x20AC)?
Ах, вы правы, я неправильно установил кодировку в Vim. Спасибо за информацию и помощь :) – DBedrenko