我想首先说我不熟悉Perl。话虽这么说,我遇到了这段代码,我无法弄清楚下面代码中\x
的用途。另外,我不确定为什么在运行以下内容时没有显示任何内容:
perl -e 'print "\x7c\x8e\x04\x08"'
答案 0 :(得分:5)
它不是关于打印:它是关于字符串表示的,其中代码表示字符集中的字符。有关详细信息,请阅读Quote and Quote-like Operators和Effects of Character Semantics
在您的情况下,字符代码是十六进制。你应该查看你的字符集表,你可能需要先转换为十进制。
答案 1 :(得分:3)
你说"我不确定为什么在运行以下内容时没有显示任何内容:"
perl -e 'print "\x7c\x8e\x04\x08"'
该命令向STDOUT输出4个字符。每个字符都以十六进制指定。 " \ x7c"部分将输出vertical bar character |
。其他三个字符是控制字符,因此可能不会产生任何可见的输出。如果将输出重定向到文件,最终将得到一个4字节的文件。
您可能无法看到竖条字符,因为它被命令提示符覆盖了。与shell echo
或Python print
不同,Perl的print
函数不会自动为所有输出附加换行符。如果您想要新行,可以使用\n
将它们插入字符串中。
答案 2 :(得分:2)
\ x表示十六进制字符表示法的开头。