gpt4 book ai didi

perl - 规范化 ASCII 字符

转载 作者:行者123 更新时间:2023-12-04 05:24:20 28 4
gpt4 key购买 nike

我需要对诸如“quée”之类的字符串进行规范化,但似乎无法将扩展的 ASCII 字符(例如 é、á、í 等)转换为罗马/英语版本。我尝试了几种不同的方法,但到目前为止没有任何效果。关于这个一般主题有相当多的 Material ,但我似乎无法找到这个问题的有效答案。

这是我的代码:

#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 "\nArray Output: @breakdown\n";
}
$lowercase = join( "",@breakdown );
}

最佳答案

1) 这个 article应该提供一个相当好的(如果复杂)的方式。

它提供了将所有带重音的Unicode字符转换为基本字符+重音的解决方案;完成后,您可以简单地单独删除重音字符。

2)另一种选择是CPAN: Text::Unaccent::PurePerl (改进的纯 Perl 版本 Text::Unaccent)

3) 另外,this SO answer提议 Text::Unidecode :

$ perl -Mutf8 -MText::Unidecode -E 'say unidecode("été")'
ete

关于perl - 规范化 ASCII 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10742299/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com