2014-10-18 46 views
1

我正在尝试使用UTF-8文本,在这种情况下需要保留字符,例如“?”。如何在保持UTF-8字母的同时保持原状

当我使用slugify它不会维持UTF-8字符:

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

应该æsel-øen

+0

确切地说是什么slugify库在这里使用? – 2014-10-18 16:46:06

+0

slugifying的主要特征之一是将字符限制为ASCII。 – 2014-10-18 16:46:31

+0

[如何使Django slugify与Unicode字符串正常工作?](http://stackoverflow.com/q/702337)也提到'unicode-slugify'。 – 2014-10-18 16:54:39

回答

3

使用不同的图书馆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