Iconv 如何處理位元組順序?

Iconv 如何處理位元組順序?
echo hello | iconv -f ascii -t utf-16le | od -x

產生在我看來像是大尾數的結果

0068    0065    006c    006c    006f    000a

le而在 utf16le 系統 (OS X) 上,沒有產生的同一行

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

fffe    6800    6500    6c00    6c00    6f00    0a00

od -x改變位元組序嗎?

答案1

$ echo hello | iconv -f ascii -t utf-16le | hexdump -C
00000000  68 00 65 00 6c 00 6c 00  6f 00 0a 00              |h.e.l.l.o...|
$ echo hello | iconv -f ascii -t utf-16le | od -t x1
0000000 68 00 65 00 6c 00 6c 00 6f 00 0a 00

問題是“od”如何處理位元組順序。當你要求它顯示時大於單一位元組的單位-x顯示 16 位元字),它將預設為其運作的系統的本機內容。

您的 macOS 可能運行在 Intel x86_64 CPU 上,該 CPU 是小端字節序,這表示位元組在透過「od」解碼時{0x68, 0x00}確實代表 16 位元數字。0x0068

相關內容