1

次のテストスクリプトがあります。

#!/usr/local/ActivePerl-5.16/bin/perl

use 5.014_001;
use utf8;
use Unicode::Collate;
use strict;
use warnings;
use Carp;
use Data::Dump;
use Encode qw( encode_utf8 );
use Unicode::Collate::Locale;


binmode STDOUT, ':encoding(UTF-8)';

my @words =("Értékesítési", "Értékesítési", "Érvényes", "EU-s", "Eszközmozgás");

my $coll = Unicode::Collate::Locale->new(locale => "hu");

my @result = $coll->sort(@words);


foreach my $item (@result){
print $item, "\n";
}

以下を出力します。

Értékesítési
Értékesítési
Érvényes
Eszközmozgás
EU-s

しかし、私のハンガリーの情報提供者によると、ウィキペディアによれば、「E」は「É」の前にあります。誰かが何が起こっているのか教えてもらえますか?

ありがとう。

4

1 に答える 1

2

ハンガリー語の照合順序は、プライマリ レベルで E と É を同じものとして扱うため、正しい結果が得られます。2 つの単語が鋭アクセントの有無のみ異なる場合、アクセントのない方が先になりますが、一次ソートは鋭アクセントを考慮せずに実行されます。

于 2013-03-12T13:26:27.580 に答える