【问题标题】:Different encoding when using unicode character in Python在 Python 中使用 unicode 字符时的不同编码
【发布时间】:2019-01-18 23:29:45
【问题描述】:

当遇到组合 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

如何将它们转换/规范化到同一个编码器中?

【问题讨论】:

    标签: python python-unicode unicode-normalization


    【解决方案1】:

    你可以使用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
    

    【讨论】:

      猜你喜欢
      • 2018-05-27
      • 1970-01-01
      • 2012-03-18
      • 2012-03-23
      • 2014-12-05
      • 1970-01-01
      • 1970-01-01
      • 2014-10-18
      • 1970-01-01
      相关资源
      最近更新 更多