是否可以在 Perl 中打印'é' '%C3%A9'?



我有一些带重音的字符串,比如"é"并且目标是将我的字符串放入URL中,因此我需要将";é"至"%C3%A9";

我已经测试了一些模块,如HTML::EntitieEncodeURI::Encode,但没有成功

实际结果:%C3%83%C2%A9

预期结果:%C3%A9

#!/usr/bin/perl
use strict;
use warnings;
use HTML::Entities;
use feature 'say';
use URI::Encode qw( uri_encode );
my $var = "é";
say $var;
$var = uri_encode( $var );
say $var;

您缺少use utf8

使用utf8杂注告诉Perl解析器允许在当前词法范围中的程序文本。无utf8杂注告诉Perl切换回将源文本视为文本字节当前的词汇范围。(在EBCDIC平台上,从技术上讲允许使用UTF-EBCDIC,而不允许使用UTF-8,但这种区别是学术性的,因此在本文档中,术语UTF-8用于表示两者(。

除了告诉Perl您的脚本是用UTF-8编写的之外,不要将此杂注用于其他任何事情。下面描述的实用程序函数如下无需使用utf8;即可直接使用;。

最新更新