什么时候你需要使用fc(),什么时候uc()会失败?
解决方法
fc用于不区分大小写的比较.
uc($a) cmp uc($b) # XXX lc($a) cmp lc($b) # XXX fc($a) cmp fc($b) # ok
这会产生影响的一个例子:
lc uc fc -- -- -- -- ss ss SS ss SS ss SS ss ß ß SS ss ẞ ß ẞ ss
注意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;