iconv와 od는 바이트 순서를 어떻게 처리합니까? [폐쇄]

iconv와 od는 바이트 순서를 어떻게 처리합니까? [폐쇄]
echo hello | iconv -f ascii -t utf-16le | od -x

나에게 빅엔디안 결과처럼 보이는 결과가 생성됩니다.

0068    0065    006c    006c    006f    000a

utf16le 시스템(Osx)에서는 'le'이 없는 동일한 줄이 생성됩니다.

echo hello | iconv -f ascii -t utf-16 | od -x

fffe    6800    6500    6c00    6c00    6f00    0a00

od -x가 엔디안을 변경합니까?

답변1

od아무것도 바뀌지 않는 것 같지만 iconv그렇습니다. 귀하의 출력에 따르면 이 시스템은 x86-64의 Ubuntu 출력과 비교됩니다 utf-16.utf-16be

$ 에코 안녕하세요 | iconv -f ascii -t utf-16le | iconv -f ascii -t utf-16le
00000000 68 00 65 00 6c 00 6c 00 6f 00 0a 00 |안녕하세요..|
0000000c
$ 에코 안녕하세요 | iconv -f ascii -t utf-16le | iconv -f ascii -t utf-16le
0000000 0068 0065 006c 006c 006f 000a
0000014
$ 에코 안녕하세요 | iconv -f ascii -t utf-16be | iconv -f ascii -t utf-16be
00000000 00 68 00 65 00 6c 00 6c 00 6f 00 0a |.안녕하세요. |
0000000c
$ 에코 안녕하세요 | iconv -f ascii -t utf-16be | iconv -f ascii -t utf-16be
0000000 6800 6500 6c00 6c00 6f00 0a00
0000014

od -t x1대신 다음과 같은 출력으로 호출할 수 있습니다 hd.

$ 에코 안녕하세요 | iconv -f ascii -t utf-16be | iconv -f ascii -t utf-16be
0000000 00 68 00 65 00 6c 00 6c 00 6f 00 0a
0000014

그것은 그와 같지만 hdASCII 열이 없습니다.

하지만 내 우분투는 BOM을 사용하여 utf-16을 utf-16le에 매핑합니다.

$ 에코 안녕하세요 | iconv -f ascii -t utf-16 | iconv -f ascii -t utf-16
0000000 효과 0068 0065 006c 006c 006f 000a
0000016
$ 에코 안녕하세요 | iconv -f ascii -t utf-16 | iconv -f ascii -t utf-16
00000000 ff fe 68 00 65 00 6c 00 6c 00 6f 00 0a 00 |..안녕하세요..|
0000000e

OS X 시스템이 왜 반대 방향으로 구성되어 있는지가 흥미롭습니다. 나는 이것에 대한 실제 이유가 없다고 생각합니다. 어쩌면 이상한 레거시 문제이거나 컴파일 구성 오류일 수도 있습니다. 이 순간을 언급하는 문서가 있습니까?

관련 정보