Command line 如何从命令行转换UTF-8字符的十进制/八进制/十六进制/UTF-8表示形式?

Command line 如何从命令行转换UTF-8字符的十进制/八进制/十六进制/UTF-8表示形式?,command-line,utf-8,hex,octal,Command Line,Utf 8,Hex,Octal,有人建议用echo-e表示八进制,用\0表示十六进制。例如: echo-e“\\0302\\0241”--> 是否有一种简单的方法可以将UTF-8字符转换为打印的八进制/十六进制序列?是-使用hextump,如下所示: $ echo -n i | hexdump 0000000 0069 0000003 它将输出如下内容: $ echo -n i | hexdump 0000000 0069

有人建议用
echo-e
表示八进制,用
\0
表示十六进制。例如:

echo-e“\\0302\\0241”
-->


是否有一种简单的方法可以将UTF-8字符转换为打印的八进制/十六进制序列?

是-使用
hextump
,如下所示:

$ echo -n i | hexdump
0000000 0069                              
0000003
它将输出如下内容:

$ 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

代码取自此处:

太好了。对于八进制:
echo | hextump-b
;十进制:
echo | hextump-d