如何比较字节不同但值相同的Unicode字符串? [英] How do I compare a Unicode string that has different bytes, but the same value?

查看:0
本文介绍了如何比较字节不同但值相同的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆