如何在保持 UTF-8 字母的同时进行 slugify [重复]
Posted
技术标签:
【中文标题】如何在保持 UTF-8 字母的同时进行 slugify [重复]【英文标题】:How to slugify while still maintaining UTF-8 letters [duplicate] 【发布时间】:2014-12-14 01:09:43 【问题描述】:我正在尝试对 UTF-8 文本进行 slugify,在这种情况下涉及我想要维护的 æøå 等字符。
当我使用 slugify 时,它不会保留 UTF-8 字符:
>>> from slugify import slugify
>>> slugify(u'æsel (øen)')
'aesel-oen'
应该是æsel-øen
。
【问题讨论】:
你在这里使用的究竟是什么 slugify 库? slugifying 的主要特点之一是将字符限制为 ASCII。 而How to make Django slugify work properly with Unicode strings? 也提到了unicode-slugify
。
【参考方案1】:
使用不同的库进行 slugify; unicode-slugify
library 输出完全符合您的要求:
$ bin/pip install unicode-slugify
Downloading/unpacking unicode-slugify
Downloading unicode-slugify-0.1.1.tar.gz
Running setup.py (path:/.../build/unicode-slugify/setup.py) egg_info for package unicode-slugify
Downloading/unpacking django (from unicode-slugify)
Downloading Django-1.7-py2.py3-none-any.whl (7.4MB): 7.4MB downloaded
Installing collected packages: unicode-slugify, django
Running setup.py install for unicode-slugify
Successfully installed unicode-slugify django
Cleaning up...
$ bin/python
Python 2.7.8 (default, Sep 19 2014, 22:15:41)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.51)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from slugify import slugify
>>> slugify(u'æsel (øen)')
u'\xe6sel-\xf8en'
>>> print slugify(u'æsel (øen)')
æsel-øen
【讨论】:
以上是关于如何在保持 UTF-8 字母的同时进行 slugify [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用备用字母值对列表列表进行排序,以保持与相邻数值的关联