[英]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.