English 中文(简体)
将 ASCII 字符标准化
原标题:Normalizing ASCII characters

我需要一个像“quée”这样的字符串的正常化,我似乎无法将扩展的 ASCII 字符如 é, á, í 等转换成罗马/ english 版本。 我尝试过几种不同的方法,但至今为止没有任何效果。 关于这个一般性主题,有相当数量的材料,但我似乎无法找到解决问题的可行答案。

这是我的代码:

#transliteration solution (works great with standard chars but doesn t find the 
#special ones) - I ve tried looking for both x{130} and é with the same result.
$mystring =~ tr/\x{130}/e/;

#converting into array, then iterating through and replacing the specific char
#( same result as the above solution )
my @breakdown = split( "",$mystring );

foreach ( @breakdown ) {
    if ( $_ eq "x{130}" ) {
        $_ = "e";
        print "
Array Output: @breakdown
";
    }
    $lowercase = join( "",@breakdown );
}
最佳回答

1) < a href="http://ahinea.com/en/tech/accented-translate.html" rel=“nofollow noreferrer" > 条款 应提供相当不错(如果复杂)的方式。

它提供了将所有重音 Unicode 字符转换为基字符 + 口音的解决方案; 一旦完成, 您可以简单地将口音字符分别删除 。


2) 另一种选择是:CPAN: