如何在保持UTF-8字母的同时生成slug?

1 投票
1 回答
1170 浏览
提问于 2025-04-28 07:08

我正在尝试把UTF-8文本转换成适合网址的格式,这里涉及到一些字符,比如æ、ø和å,我希望这些字符能保留下来。

但是当我使用slugify的时候,它并没有保留这些UTF-8字符:

>>> from slugify import slugify
>>> slugify(u'æsel (øen)')
'aesel-oen'

它应该变成æsel-øen

暂无标签

1 个回答

3

可以使用一个不同的库来生成网址友好的字符串;这个unicode-slugify的输出正好符合你的需求:

$ 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

撰写回答