首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将utf-8转换为html &;

将utf-8转换为html &;
EN

Stack Overflow用户
提问于 2012-10-08 22:58:04
回答 2查看 2.2K关注 0票数 1

在Perl中,如何将包含utf-8字符的字符串转换为&.;

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-08 23:16:09

首先,在空模式上拆分以获得单个字符的列表。然后,将每个字符映射到自身,如果它是ASCII,或者它的代码,如果不是:

代码语言:javascript
复制
use Encode qw( decode_utf8 );

my $utf8_string = "\xE2\x80\x9C\x68\x6F\x6D\x65\xE2\x80\x9D";
my $unicode_string = decode_utf8($utf8_string);

my $html = join q(),
    map { ord > 127 ? "&#" . ord . ";"
                    : $_
        } split //, $unicode_string;
票数 3
EN

Stack Overflow用户

发布于 2013-07-16 15:54:21

只需简单地计算ord +必需的HTML实体格式,就可以替换所有不可打印和不低的ASCII符号(即\x20 - \x7F区域以外的任何符号)。Perl有/e标志,表示替换应该被视为代码。

代码语言:javascript
复制
use utf8;
my $str = "testТест"; # This is correct UTF-8 string right in the code
$str =~ s/([^[\x20-\x7F])/"&#" . ord($1) . ";"/eg;
print $str;
# testТест
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12790643

复制
相关文章

相似问题

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