如何将带有重音符号,变音符号等的字母转换为Perl中的ASCII对应字母?

bod*_*ydo 10 perl ascii diacritics data-conversion

我正在编写一个与Perl中的文档一起工作的程序,并且许多文档都有诸如ä, ö, ü, é, etc(大写和小写)之类的字符.我想用ASCII版本替换它们a, o, u, e, etc.我怎么在Perl中做到这一点?

我想到的一个解决方案是使用键是变音符号和重音字符的哈希值,并且值是ASCII对应物,但是这需要我有一个所有变音符号和重音符号的列表,我没有,如果我建立了一个列表,我肯定会想念很多,因为我不熟悉可能有变音符号,重音符号和其他变音符号的所有可能字符.

rai*_*7ow 24

像往常一样,如果你想到的问题肯定不是你的问题,那么CPAN已经有了一个解决方案.)在这种情况下,它被称为Text :: Unidecode

use warnings;
use strict;
use utf8;
use Text::Unidecode;
print unidecode('ä, ö, ü, é'); # will print 'a, o, u, e'
Run Code Online (Sandbox Code Playgroud)