我正在编写一个IRC脚本,有时可能需要使用颜色。通常我会这样做:
my $C = chr(3);
$C
是用于颜色控制的控制码,但我看到有些脚本会对其进行转义,例如"\x\v..."。我该如何获取正确编码的版本?我尝试了Data::Dumper
,但没有找到它。希望我的问题表述清楚。
我正在编写一个IRC脚本,有时可能需要使用颜色。通常我会这样做:
my $C = chr(3);
$C
是用于颜色控制的控制码,但我看到有些脚本会对其进行转义,例如"\x\v..."。我该如何获取正确编码的版本?我尝试了Data::Dumper
,但没有找到它。希望我的问题表述清楚。
使用十六进制转义码来指定 chr(3)
的方法是:
print "\x03\n";
print "\003\n";
print "\cC\n";
代码范围在0到255之间的字符可以用多种方式表示。这些例子都打印出字符A
:
print chr(65);
print "\101"; # octal notation
print "\x41"; # hexidecimal notation (and hexadecimal notation)
printf "%c",65;
print chr(3);
print "\003";
print "\3";
print "\x03"; # hexidecimal notation (and hexadecimal notation)
printf "%c",3;
print "\cc"; # from Sinan's answer
print "\cC";
您可以通过多种机制打印十六进制编码(甚至是八进制或二进制编码)的字符(这绝不是一个全面的列表):
# generate strings from hex:
my $space_char = sprintf("%x", 0x20);
my $space_char2 = "\x20";
my $space_char3 = 0x20;
my $space_char4 = pack("L", 0x20);
my $space_char5 = chr(0x20);