В моих знаниях о кодировках, кодировках и т. д. есть пробел. /a> и код ISO/IEC 8859-15 (латиница-9) - страниц значение знака евро (€) задается как 0x20AC, что равно 8364 в десятичном виде! Но как это может быть, если идея состоит в том, что любой из символов в этой кодировке должен помещаться в один байт без знака (т.е. максимальное значение может быть 255)? US-ASCII принимает значения 0-127, а 128-255 - это то, где были различия между разными кодировками символов.
Когда я ввожу текст в текстовый редактор (vim):
a € b
И сохраните его в файл с кодировкой «latin9». Я вижу этот файл, состоящий из следующих байтов:
$ xxd euro-file.txt
0000000: 6120 e282 ac20 620a a ... b.
OK so:
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)?