使用tr运算符删除perl的重音符号

Mos*_*afa 1 unicode perl ascii

我试图通过运行perl脚本来删除我的文本中的重音符号,其中我使用tr运算符(我发现的更简单的方法):

我试过了:

tr/àâäéèëêîïôöûùüç/aaaeeeeiioouuuc/;
Run Code Online (Sandbox Code Playgroud)

它删除了重音,但是我得到了'aa'而不是'a','ae'而不是'e'等字符.

Gil*_*not 7

最好使用像Text::Undiacritic=)这样的合适模块

#!/usr/bin/perl
use warnings;
use strict;
use utf8;
binmode(STDIN, ":utf8");
binmode(STDOUT, ":utf8");
binmode(STDERR, ":utf8");

use Text::Undiacritic qw(undiacritic);

my $string = "C'est l'été à Paris ?\n";
print undiacritic $string;
Run Code Online (Sandbox Code Playgroud)

OUTPUT:

C'est l'ete a Paris ?
Run Code Online (Sandbox Code Playgroud)

注意

至于你问重音符号字符串,undiacritic()将删除重音,但不会在印刷结扎上作为例子.如果你传递字符串

C'est l'été à Paris Lætitia ?
Run Code Online (Sandbox Code Playgroud)

它不会替代 æ

欢迎来到真正棘手的世界:Unicode-UTF8.一个好的指针