Python两个字符串在比较中显示为False

时间:2018-07-12 10:21:24

标签: python string unicode encoding compare

我有两个字符:,从现在开始,我将其定义为char1char2。在python控制台中,当我运行char1 == char2时,结果为False。运行char1 is char2时,仍然得到False

我尝试使用它来查找编码,因为我认为它可能返回False,因为编码是不同的,但是当我执行char1.encode("utf-8") == char2.encode("utf-8")并且与is命令相同时,它返回False

如何识别这些相同的字符?

2 个答案:

答案 0 :(得分:1)

⼔和匕首不是同一字符

这就是为什么有不同的原因

答案 1 :(得分:-2)

#!/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 decomposition\n" if
    charinfo(ord $char2)->{code}
        ==
    charinfo(ord $char1)->{decomposition} =~ s/<compat> //r;

print "normalises to the same character\n" if
    NFKC($char1) eq NFKC($char2);