为什么以下内容导致hexdump中出现如此不同的字节序列?
$ echo -e "\u0f67\u0fb9\u0fa8\u0fb3\u0fba\u0fbc\u0fbb\u0f83\u0f0b" > uni
$ hexdump uni
0000000 bde0 e0a7 b9be bee0 e0a8 b3be bee0 e0ba
0000010 bcbe bee0 e0bb 83be bce0 0a8b
000001c
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE=C
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
区域设置正确设置为:en_US.UTF-8且实际的unicode输出正确:ཧྐྵྨླྺྼྻྃ་
答案 0 :(得分:1)
我的误解源于相信我回应的角色是utf8,当它们实际上是utf16时。当looking up the first character时,utf8显示为
e0 bd a7
哪个应该是big endian。因此,要更改endianess,可以使用-C参数运行hexdump。