В какой кодировке два байта 0xd1 0x85 отображаются как x?

Модератор: Модераторы разделов

Аватара пользователя
жучара
Сообщения: 1124
ОС: астралинукс

В какой кодировке два байта 0xd1 0x85 отображаются как x?

Сообщение жучара »

Друзья! У меня есть файл foo.txt

Shell

$ ls -l foo.txt
-rw-r--r-- 1 user user 2 фев 5 22:16 foo.txt
$
$
$ cat foo.txt
х$
$
$ hexdump -C foo.txt
00000000 d1 85 |..|
00000002
$
Получается, в нём один-единственный символ закодирован двумя байтами. Пока определяется как x. Но что это за кодировка такая? kate врёт, что UTF-8
kate.png
Потому, что всем известно, что в начале любого файла, который UTF-8, стоит последовательность символов EF BB BF

Но не будем отмахиваться от kate. Вдруг оно почему-то считает этот файл UTF-8 (по умолчанию, что ли). Итак, байты 0xd1 0x85 в кодировке UTF-8 означают символ x

Как бы не так. Что угодно, но не x. Иероглиф какой-то.
https://symbl.cc/ru/D185/

На всякий случай ещё вот так:
https://symbl.cc/ru/85D1/

А потому сабж. Спасибо, кто откликнется. Файл foo.txt прикладываю. Debian 12.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5447
ОС: Gentoo

Re: В какой кодировке два байта 0xd1 0x85 отображаются как x?

Сообщение /dev/random »

жучара писал(а):
05.02.2026 21:13
Но что это за кодировка такая? kate врёт, что UTF-8
Не врёт. Это UTF-8.
жучара писал(а):
05.02.2026 21:13
Потому, что всем известно, что в начале любого файла, который UTF-8, стоит последовательность символов EF BB BF
Покажите хоть одну программу, кроме виндового блокнота, которая добавляла бы этот идиотский BOM.
А большинство компиляторов и интерпретаторов - так и вовсе считают BOM синтаксической ошибкой, даже когда требуют, чтобы исходники были в UTF-8.
жучара писал(а):
05.02.2026 21:13
Как бы не так. Что угодно, но не x. Иероглиф какой-то.
https://symbl.cc/ru/D185/
Не путайте UTF-8 с UTF-16BE.
жучара писал(а):
05.02.2026 21:13
На всякий случай ещё вот так:
https://symbl.cc/ru/85D1/
И с UTF-16LE тоже не путайте.


Маленькая русская буква Ха имеет в юникоде номер 1093 (0x0445). В UTF-16BE это записывается как 04 45, в UTF-16LE - как 45 04, а в UTF-8 - как D1 85. Подробности в man utf-8.
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 1124
ОС: астралинукс

Re: В какой кодировке два байта 0xd1 0x85 отображаются как x?

Сообщение жучара »

/dev/random писал:
05.02.2026 22:42
Маленькая русская буква Ха имеет в юникоде номер 1093 (0x0445). В UTF-16BE это записывается как 04 45, в UTF-16LE - как 45 04, а в UTF-8 - как D1 85. Подробности в man utf-8.
Xa- "a" не должно же быть?
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5447
ОС: Gentoo

Re: В какой кодировке два байта 0xd1 0x85 отображаются как x?

Сообщение /dev/random »

жучара писал(а):
07.02.2026 10:37
Xa- "a" не должно же быть?
Это название буквы. А, Бэ, Вэ и т.д.
Спасибо сказали: