5

国際的なテキストを英語の代替文字に変換するためにどのライブラリや関数を使用すればよいかのアドバイスを探しています。

例えば

Vous avez aimé l'épée offerte par les elfes à Frodon 

に変換

Vous avez aime l'epee offerte par les elfes a Frodon 
4

1 に答える 1

14

最初にUnicode::Normalizeを使用して文字を分解し、次に単純な正規表現を使用してすべての分音記号を削除できます。(単純にすべての非スペーシング マーク文字を取得するだけでよいと思いますが、あいまいな例外が 1 つまたは 2 つある可能性があります。)

次に例を示します。

use strict;
use warnings;
use utf8;

use Unicode::Normalize;

my $test = "Vous avez aimé l'épée offerte par les elfes à Frodon";

my $decomposed = NFKD( $test );
$decomposed =~ s/\p{NonspacingMark}//g;

print $decomposed;

出力:

Vous avez aime l'epee offerte par les elfes a Frodon
于 2013-07-10T03:18:22.623 に答える