我有一些带重音的字符串,比如"é"并且目标是将我的字符串放入URL中,因此我需要将";é"至"%C3%A9";
我已经测试了一些模块,如HTML::Entitie
、Encode
或URI::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;即可直接使用;。