gpt4 book ai didi

python - Unicodedata.normalize() 值错误 : invalid normalization form

转载 作者:太空宇宙 更新时间:2023-11-04 10:14:20 29 4
gpt4 key购买 nike

我正在尝试获取外语文本并输出人类可读、文件名安全的等效文本。环顾四周后,似乎最好的选择是 unicodedata.normalize(),但我无法让它工作。我试过将一些答案的确切代码放在这里和其他地方,但它一直给我这个错误。当我运行时,我只获得了一次成功:

unicodedata.normalize('NFD', '\u00C7')
'C\u0327'

但每隔一段时间,我都会收到一个错误。这是我试过的代码:

unicodedata.normalize('NFKD', u'\u2460') #error, not sure why. Look same as above.
s = 'ذهب الرجل'
unicodedata.normalize('NKFC',s) #error
unicodedata.normalize('NKFD', 'ñ') #error

具体来说,我得到的错误是:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid normalization form

我不明白为什么这不起作用。所有这些都是字符串,这意味着它们在 Python 3 中是 unicode。我尝试使用 .encode() 对它们进行编码,但是 normalize() 说它只接受参数字符串,所以我知道那不可能。我真的很茫然,因为即使是我从这里复制的代码似乎也会出错。这是怎么回事?

最佳答案

查看unicodedata.c ,出现该错误的唯一方法是输入无效的 form 字符串。有效值是“NFC”、“NFKC”、“NFD”和“NFKD”,但您似乎使用的值是“F”和“K”调换的:

>>> import unicodedata
>>>
>>> unicodedata.normalize('NKFD', 'ñ')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid normalization form
>>>
>>> unicodedata.normalize('NFKD', 'ñ')
'ñ'

关于python - Unicodedata.normalize() 值错误 : invalid normalization form,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36327790/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com