perl中的大写重音字符

Fre*_*red 3 perl uppercase

有没有办法在perl中大写重音字符,

my $string = "éléphant";

print uc($string);
Run Code Online (Sandbox Code Playgroud)

那它真的打印ÉLÉPHANT?

我的perl脚本用ISO-8859-1编码,$ string用xml文件打印,编码相同.

ike*_*ami 8

perl 只能理解US-ASCII和UTF-8,后者需要

use utf8;
Run Code Online (Sandbox Code Playgroud)

如果要将文件保留为iso-8859-1,则需要明确解码文本.

use open ':std', ':encoding(locale)';
use Encode qw( decode );

# Source is encoded using iso-8859-1, so we need to decode ourselves.
my $string = decode("iso-8859-1", "éléphant");
print uc($string);
Run Code Online (Sandbox Code Playgroud)

但是将脚本转换为UTF-8可能更好.

use utf8;  # Source is encoded using UTF-8
use open ':std', ':encoding(locale)';

my $string = "éléphant";
print uc($string);
Run Code Online (Sandbox Code Playgroud)

如果要打印到文件,请确保:encoding(iso-8859-1)在打开文件时使用(无论您使用哪种替代方案).