\ x在打印中做了什么

时间:2015-04-12 19:12:12

标签: perl

我想首先说我不熟悉Perl。话虽这么说,我遇到了这段代码,我无法弄清楚下面代码中\x的用途。另外,我不确定为什么在运行以下内容时没有显示任何内容:

perl -e 'print "\x7c\x8e\x04\x08"'

3 个答案:

答案 0 :(得分:5)

它不是关于打印:它是关于字符串表示的,其中代码表示字符集中的字符。有关详细信息,请阅读Quote and Quote-like OperatorsEffects 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表示十六进制字符表示法的开头。