如何在Perl中将十六进制转换为字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Perl中将十六进制转换为字符串相关的知识,希望对你有一定的参考价值。

我正在使用Perl,我有一个字符串:

诱饵b

我怎样才能将其转换为

阿涅斯湾

?

我试过使用下面的代码。

my $hex = "agnu00e8s b";
$hex =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
print "$hex
";

但它失败并显示出一些奇怪的性格。更重要的是,我还需要显示中文单词。例如,

烹饪面纱05

我如何转换为以下内容?

面包

答案
my $s = "agn\u00e8s b";
$s =~ s/\u(....)/chr(hex($1))/eg;
print "$s
";

不要忘记对输出进行编码

use open ':std', ':encoding(UTF-8)';
另一答案

用这个:

$ hex = ~s /( u [a-fA-F0-9] [a-fA-F0-9] [a-fA-F0-9] [a-fA-F0-9])/ encode(' utf-8',chr(十六进制($ 1)))/例如;

以上是关于如何在Perl中将十六进制转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

在 Perl 中将二进制数据拆分为字节数组

在 bash/perl 中将科学记数法转换为十进制(不是整数)

perl中如何将十六进制转换为char字符串

在 Perl 中将文件转换为字符串的最佳方法是啥?

在 perl6 中将匹配对象转换为字符串

如何在 C++ 中将字符的十进制代码转换为 Unicode 字符串?