簡體   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