我想将Unicode头骨和交叉骨头添加到我的shell提示符(特别是' skull and crossbones ' (U+2620)),但我不知道让echo吐出它的魔法咒语,或任何其他4位Unicode字符。两位数的数字很简单。例如echo -e "\x55",。
除了下面的答案之外,还应该注意到,很明显,您的终端需要支持Unicode以使输出符合您的期望。Gnome-terminal在这方面做得很好,但它在默认情况下不一定是打开的。
在macOS的终端应用程序中,选择首选项->编码,并选择Unicode (UTF-8)。
这三个命令中的任何一个都可以在控制台中打印你想要的字符,前提是控制台接受UTF-8字符(大多数当前的都接受):
echo -e "SKULL AND CROSSBONES (U+2620) \U02620"
echo $'SKULL AND CROSSBONES (U+2620) \U02620'
printf "%b" "SKULL AND CROSSBONES (U+2620) \U02620\n"
SKULL AND CROSSBONES (U+2620) ☠
之后,您可以将实际的字形(图像、字符)复制并粘贴到任何文本编辑器(启用UTF-8)。
如果你需要看到这样的Unicode Code Point是如何用UTF-8编码的,使用xxd(比od更好的十六进制查看器):
echo $'(U+2620) \U02620' | xxd
0000000: 2855 2b32 3632 3029 20e2 98a0 0a (U+2620) ....
That means that the UTF8 encoding is: e2 98 a0
或者,在HEX中避免错误:0xE2 0x98 0xA0。也就是说,空格(HEX 20)和换行(HEX 0A)之间的值。
如果您想深入了解数字到字符的转换:请查看Greg的wiki (BashFAQ)中关于Bash中的ASCII编码的文章!