Perl我会使用fc而不是uc吗?

Col*_*ove 4 perl

你何时需要使用fc(),什么时候会uc()失败?

Perl fc文档

ike*_*ami 11

fc 用于不区分大小写的比较.

uc($a) cmp uc($b)    # XXX
lc($a) cmp lc($b)    # XXX
fc($a) cmp fc($b)    # ok
Run Code Online (Sandbox Code Playgroud)

这会产生影响的一个例子:

   lc uc fc
-- -- -- --
ss ss SS ss
SS ss SS ss
ß  ß  SS ss
?  ß  ?  ss
Run Code Online (Sandbox Code Playgroud)

注意fc("ß")eq fc("ẞ"),但是uc("ß")ne uc("ẞ").

注意fc("ß")eq fc("ss"),但lc("ß")ne lc("ss").


该表是使用生成的

use strict;
use warnings;
use feature qw( fc );

use open ':std', ':encoding(UTF-8)';

my $ss = "\N{LATIN SMALL LETTER SHARP S}";
my $SS = "\N{LATIN CAPITAL LETTER SHARP S}";

printf("   lc uc fc\n");
printf("-- -- -- --\n");
printf("%-2s %-2s %-2s %-2s\n", $_, lc($_), uc($_), fc($_))
   for 'ss', 'SS', $ss, $SS;
Run Code Online (Sandbox Code Playgroud)