perl - Perl 的数字引用编码

标签 perl character-encoding

我在使用 Perl 时遇到问题。我正在尝试使用 HTML::Entities对它所做的字符串进行编码。但是我正在尝试将其转换为数字引用。例如:

use strict;
use warnings;
use LWP::Protocol::https;
use HTML::Entities;


my $str = "vis-à-vis Beyoncé's naïve\npapier-mâché résumé";
$str = encode_entities($str);

print $str;

这个输出

vis-à-vis Beyoncé's naï
papier-mâché résumé

相反,我想输出

vis-à-vis beyoncè naïve\npapier-mâchï rïsumï";

这里的问题是我不想使用这种类型的编码 (à),而是使用这种类型 (à)。

最佳答案

我有一个使用正则表达式的简单解决方案,为了得到你需要的,下面是代码:

use HTML::Entities qw[encode_entities_numeric];
use utf8;

my $str = "vis-à-vis Beyoncé's naïve\npapier-mâché résumé";
$str = encode_entities_numeric($str);

print "\n=======\n",$str,"\n=======\n";

$str =~ s/&#x([A-F0-9]+);/sprintf('&#%s;',hex($1))/ge;

print "\n=======\n",$str,"\n=======\n";

输出看起来像这样:

=======
vis-à-vis Beyoncé's naïve
papier-mâché résumé
=======

=======
vis-à-vis Beyoncé's naïve
papier-mâché résumé
=======

找出十六进制代码的模式,并将其转换为十进制格式。

关于perl - Perl 的数字引用编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32842182/

相关文章:

bash - 在bash/perl中解析txt文件的有效方法

在 Windows 上使用 UTF-8 开发 R 包

html - 所有重音字符都应该使用 html 实体吗?

python - 在 Python 中将 Unicode 转换为 ASCII 而不会出错

c++ - 将执行字符集字符串转换为UTF-8字符串

javascript - jquery、javascript - 如何从变量中删除此参数

perl - perl 表达式 $a = $a++ 中是否有任何副作用?

perl - 如果没有分配给任何变量,对象是否可访问?

Perl 只读取文件的最后一行?

python - 使用编解码器以正确的编码读取文件: TypeError