Skip to main content
 首页 » 编程设计

python之Django : Clean unicode for UrlEncoding

2025年05月04日31grandyang

我正在尝试采用 unicode 并清理它以用于 URL。

示例:“鸟奶”蛋糕 或 Pão com Ovo

在转换这些时,我的目标是使它们尽可能易于阅读,因此,这些示例后面的 url 将是 - /birds-milk-cake/ 或 /pao-com -ovo/

要获取重音字符的 ASCII,

title = 'Pão com Ovo' 
title = unicodedata.normalize('NFKD', title).encode('ascii','ignore') 

但是我想知道什么是删除像 # ! ' "( ) &. Normalize() 在这些字符上出现错误,那么是否有一种正确的方法可以在保留重音字符的同时删除这些字符?

请您参考如下方法:

有一个旧的、未维护但有效的代码扩展了 django.template.defaultfilters.slugify()通过添加对您能想象到的所有字符的支持。如果您需要支持各种语言,那么这可能是一个很好的解决方案。它叫做slughifi .