整理;";及É&引用;在匈牙利语中,使用Perl和Unicode::Collate::Locale

整理;";及É&引用;在匈牙利语中,使用Perl和Unicode::Collate::Locale,perl,unicode,multilingual,Perl,Unicode,Multilingual,我有以下测试脚本: #!/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

我有以下测试脚本:

#!/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”在“É”之前。 有人能告诉我发生了什么事吗


谢谢。

匈牙利排序规则将E和É视为小学一级的相同内容,因此结果是正确的。当两个单词仅在有无尖锐口音方面存在差异时,不带口音的单词排在第一位,但主要排序是在不考虑尖锐口音的情况下进行的。

你是对的,E排在É之前。你是否尝试过将胡或胡胡作为编码?我尝试过胡、胡胡和胡,每次,“EU-s”都排在上面列表的最后。我想我很困惑,因为我认为匈牙利语把É当作一个单独的字母,应该在E之后排序。那么这是Unicode::Collate::Locale中的一个错误吗?我想知道@tchrist是怎么想的?根据这个维基百科页面,这两个字母应该被视为单独的字母。