首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl函数string2hex

Perl函数string2hex
EN

Stack Overflow用户
提问于 2012-08-21 20:43:30
回答 4查看 373关注 0票数 3

我有一个函数:

代码语言:javascript
复制
sub ascii_to_hex ($)
{
    ## Convert each ASCII character to a two-digit hex number.
    (my $str = shift) =~ s/(.|\n)/sprintf("%02lx", ord .$1)/eg;
    return $str;
}

我需要在每个数字前添加一个'%‘。收到%68%75%44

EN

回答 4

Stack Overflow用户

发布于 2012-08-21 20:53:05

sprintf格式的字符串中使用%%来打印百分号。

票数 11
EN

Stack Overflow用户

发布于 2012-08-21 23:31:54

CPAN解决方案:

代码语言:javascript
复制
use URI::Escape;
sub ascii_to_hex { return uri_escape(shift, "\x00-\xFF"); }

代码语言:javascript
复制
use URI::Escape qw(%escapes);
sub ascii_to_hex {
    (my $str = shift) =~ s/[\s\S]/$escapes{$1}/g;
    return $str;
}

转义是URI包的一部分,虽然不是核心,但它是许多其他模块所必需的,并且倾向于安装在大多数系统上。

票数 3
EN

Stack Overflow用户

发布于 2012-08-21 20:50:16

代码语言:javascript
复制
sub ascii_to_hex ($)
{
  return join("", map { '%'.sprintf("%02x", ord($_)) } split(//, shift));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12055107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档