繁体   English   中英

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

[英]Is it possible to print 'é' as '%C3%A9' in Perl?

我有一些带重音符号的字符串,例如“é”,目标是将我的字符串放入 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

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM