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列はありません。
しかし、私のUbuntuは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システムがなぜ反対方向に構成されているのか興味深い。私はこれの実際の理由がないと思います。おそらく、奇妙なレガシー問題であるか、コンパイル構成エラーかもしれません。この瞬間に言及する文書はありますか?