在另一个问题中,有人建议echo -e
使用\0<sequence>
八进制和\x<sequence>
十六进制。例如:
echo -e "\\0302\\0241"
-->¡
有没有一种简单的方法可以从 UTF-8 字符转换为打印的八进制/十六进制序列?
在另一个问题中,有人建议echo -e
使用\0<sequence>
八进制和\x<sequence>
十六进制。例如:
echo -e "\\0302\\0241"
-->¡
有没有一种简单的方法可以从 UTF-8 字符转换为打印的八进制/十六进制序列?
是的- 使用hexdump
,像这样:
$ echo -n i | hexdump
这将输出如下内容:
0000000 0069
0000003
对于更格式化的东西,你可以这样做:
$ echo ü | hexdump | awk '{print "\\x"toupper(substr($2,3,4)) "\\x"toupper(substr($2,0,2)) "\\x"toupper(substr($3,3,4))}' | head -1
这将打印出:
\xC3\xBC\x0A
取自此处的代码:如何在 Bash 中回显 4 位 Unicode 字符?