代码之家  ›  专栏  ›  技术社区  ›  Viet Phan

在Python中使用unicode字符时的不同编码

  •  1
  • Viet Phan  · 技术社区  · 6 年前

    当遇到组合unicode而不是内置unicode时,我在Python中遇到了问题。以下是复制代码:

    # encoding=utf8
    
    a = ["Địa"]
    b = ["Địa"]
    
    print(a)  # ['\xc4\x90i\xcc\xa3a']
    print(b)  # ['\xc4\x90\xe1\xbb\x8ba']
    
    print("Địa" in a)  # False
    print("Địa" in b)  # True
    

    1 回复  |  直到 6 年前
        1
  •  1
  •   blhsing    6 年前

    你可以用 unicodedata.normalize() :

    # encoding=utf8
    import unicodedata
    a = ["Địa"]
    b = ["Địa"]
    
    print("Địa" in [unicodedata.normalize('NFC', i) for i in a])
    print("Địa" in [unicodedata.normalize('NFC', i) for i in b])
    

    True
    True
    
    推荐文章