如何比较字节不同但值相同的Unicode字符串? [英] How do I compare a Unicode string that has different bytes, but the same value?
本文介绍了如何比较字节不同但值相同的Unicode字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在比较JSON对象之间的Unicode字符串。
它们具有相同的值:
a = '人口じんこうに膾炙かいしゃする'
b = '人口じんこうに膾炙かいしゃする'
但它们具有不同的Unicode表示形式:
String a : u'u4ebau53e3u3058u3093u3053u3046u306bu81beu7099u304bu3044u3057u3083u3059u308b'
String b : u'u4ebau53e3u3058u3093u3053u3046u306bu81beuf9fbu304bu3044u3057u3083u3059u308b'
如何在两个Unicode字符串的值上进行比较?
推荐答案
Unicode normalization将为您提供此服务:
>>> import unicodedata
>>> unicodedata.normalize("NFC", "uf9fb") == "u7099"
True
在两个字符串上使用unicodedata.normalize
,然后将它们与==
进行比较,以检查规范的Unicode等效项。
字符U+F9FB
是"中日韩兼容性"字符。规范化后,这些字符将分解为一个或多个常规CJK字符。
这篇关于如何比较字节不同但值相同的Unicode字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文