我不确定是否"标准";以及";非标准";是正确的措辞,抱歉。
我基本上有一堆名字,比如:
Agit Işık
Ruşen Ünaydın
Candî Hissên
我想把它们转换成:
agit-isik
rusen-unaydin
candi-hissen
我创建了以下功能,它在大多数情况下都有效,但并不总是有效:
import unicodedata
def get_name_slug(name):
formatted_name = name.lower().replace(' ', '-')
slug = unicodedata.normalize('NFD', formatted_name).encode('ascii', 'ignore')
return slug.decode('utf-8')
上述功能的结果是:
agit-isk
rusen-unaydn
candi-hissen
请注意Agit Işık
和Ruşen Ünaydın
如何无法正确转换。
我错过了什么?
您可以尝试手动修复特殊情况,例如:
def get_name_slug(name):
formatted_name = name.lower().replace(' ', '-').replace('ı','i')
slug = unicodedata.normalize('NFD', formatted_name).encode('ascii', 'ignore')
return slug.decode('utf-8')