我有两个字符:⼔
和匕
,从现在起我将定义为char1
和char2
。在python控制台中,当我运行char1 == char2
时,我得到False
。当我运行char1 is char2
时,结果仍然得到False
。
我试图用它找到编码,因为我认为它可能会返回False
,因为编码不同,但当我用is
命令执行char1.encode("utf-8") == char2.encode("utf-8")
和相同操作时,它会返回False
。
我如何让它识别出这些是相同的字符?
⼔和匕不是同一个字符
-
⼔是spoon的部首(参见wiki(。这是中文单词using匕自由基
-
匕是一个汉字(见wiki(
这就是为什么有不同的
#!/usr/bin/env perl
use utf8;
use Unicode::UCD qw(charinfo);
use Unicode::Normalize qw(NFKC);
my $char1 = "N{KANGXI RADICAL SPOON}"; # ⼔
my $char2 = "N{CJK UNIFIED IDEOGRAPH-5315}"; # 匕
print "same character considering compat decompositionn" if
charinfo(ord $char2)->{code}
==
charinfo(ord $char1)->{decomposition} =~ s/<compat> //r;
print "normalises to the same charactern" if
NFKC($char1) eq NFKC($char2);