如何在保持 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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在保持结构的同时使用 xslt 重新排序 xml 文件

如何使用备用字母值对列表列表进行排序,以保持与相邻数值的关联

R - 如何在保持其他列静止的同时对单个列进行热编码?

如何在保持文本结构(标题/副标题/正文)的同时进行 PDF 文本提取的 OCR

如何在保持绝对定位的同时对依赖于其他元素的文本进行动画处理

当字符串为数字时,如何在考虑值的同时按字母顺序对字符串进行排序?