Bash - Вывод Od Сбивает С Толку

  • Автор темы BASHNI_NETT
  • Обновлено
  • 21, Oct 2024
  • #1

Это не вопрос, связанный с развертыванием, но я считаю, что он здесь.

Я узнал о

utf-8
tool yesterday, and began to fiddle with it.

Вопрос в том,

0063 a1c3
encoding. See the examples:

ascii

Так

c3 a1
translates to
á
правильно в каждом тесте, кроме последнего, который начинается с
~ $ echo -n á | od -x
0000000 a1c3
0000002
~ $ echo -n áá | od -x
0000000 a1c3 a1c3
0000004
~ $ echo -n ác | od -x
0000000 a1c3 0063
0000003

# This is the issue
~ $ echo -n cá | od -x
0000000 c363 00a1
0000003
char. Why isn't the output of the last test
utf-8
(т.е. инвертировать предпоследнее) ?

Я пытался читать из

od
file and the result is the same.

Заранее спасибо.

#баш

BASHNI_NETT


Рег
24 Jan, 2007

Тем
88

Постов
208

Баллов
668
  • 25, Oct 2024
  • #2

Проблема решена:

Это из-за порядка байтов вывода.

Есть вариант

alias od1='od -Ax -t x1'
alias od2='od -Ax -t x1 -c'
which by default is
-t x1
.

Пример строки был

63c3
, which translates to
c363
~ $ echo -n cá | od --endian=little -x
0000000 c363 00a1
0000003
encoded:

00

(

\n
prevents
-n
в конце строки, делая последний байт
~ $ echo -n cá | od --endian=big -x
0000000 63c3 a100
0000003
)

Итак, это тот же результат, но с инвертированными байтами:

utf-8

(

63 C3 A1
instead of
и так далее).

 

RESPECTUS


Рег
17 Nov, 2016

Тем
97

Постов
215

Баллов
710
  • 25, Oct 2024
  • #3

Из-за порядка байтов и других причин я остановился на этих двух псевдонимах, которые использую постоянно. Важно то,

little

--endian
 

Goragent


Рег
02 Apr, 2020

Тем
100

Постов
208

Баллов
728
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно