我最近遇到了Unicodedata模块以了解其应用程序之一。可以通过多个法律编码来表示某些字符,这会导致一些问题。
例如,字符可以可以由?使用,也可以由?表示,如下所示:
原因是第一个表示是整体表示,第二类是组合特征,它是n和carture?的组合特征。
显然,在需要字符串的程序中,使用以上字符之类的各种表示形式将引起问题,如下所示:
我们期望以上字符在两个表示下相等,这需要使用Unicodedata模块来标准化这些字符:
归一化()第一个参数指定字符串的标准化方法。nfc表明该字符应为整体组成,并且还有其他标准化方法,例如NFD,并且在上面的字符n和?的组合,即NFD表示。
egster符号特在NFC中,总是用视觉上的u+00c5(?-a)代替,以视觉上的u+00c5.in,nfd,由u+0041(a)和两个字符组成的两个字符组成的序列和U+030a(°)将被更换。
标准化对于需要以一致的方式处理Unicode文本的任何过程都很重要,因为它会影响比较,搜索和分类的重要性。
以上是该共享的所有内容。如果您想了解更多信息,请转到公共帐户:Python编程学习圈,每日干货共享
原始:https://juejin.cn/post/7102658092340346894