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
그것은 그와 같지만 hd
ASCII 열이 없습니다.
하지만 내 우분투는 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 시스템이 왜 반대 방향으로 구성되어 있는지가 흥미롭습니다. 나는 이것에 대한 실제 이유가 없다고 생각합니다. 어쩌면 이상한 레거시 문제이거나 컴파일 구성 오류일 수도 있습니다. 이 순간을 언급하는 문서가 있습니까?