[英]Is it possible to print 'é' as '%C3%A9' in Perl?
我有一些带重音符号的字符串,例如“é”,目标是将我的字符串放入 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
。
use utf8 pragma 告诉 Perl 解析器在当前词法 scope 的程序文本中允许 UTF-8。 no utf8 pragma 告诉 Perl 切换回将源文本视为当前词法 scope 中的文字字节。(在技术平台上)它允许 UTF-EBCDIC,而不是 UTF-8,但这种区别是学术上的,因此在本文档中术语 UTF-8 用于表示两者)。
除了告诉 Perl 你的脚本是用 UTF-8 编写的之外,不要将此 pragma 用于任何其他用途。下面描述的实用函数无需使用 utf8; 即可直接使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.