awesome slugify and unicode

Mark Lawrence breamoreboy at yahoo.co.uk
Thu Jan 23 08:18:08 EST 2014


On 23/01/2014 10:41, wxjmfauth at gmail.com wrote:
> Le jeudi 23 janvier 2014 10:14:48 UTC+1, Mark Lawrence a écrit :
>> On 23/01/2014 07:18, wxjmfauth at gmail.com wrote:
>>
>>> Le mercredi 22 janvier 2014 20:23:55 UTC+1, Mark Lawrence a écrit :
>>
>>>> I thought this blog might interest some of you
>>
>>>>
>>
>>>> http://pydanny.com/awesome-slugify-human-readable-url-slugs-from-any-string.html
>>
>>>>
>>
>>>> My fellow Pythonistas, ask not what our language can do for you, ask
>>
>>>>
>>
>>>> what you can do for our language.
>>
>>>>
>>
>>>
>>
>>> This is not "unicode", only string manipulations.
>>
>>> The same work could be done with, let say, cp1252.
>>
>>> The difference lies in the repertoires of characters
>>
>>> to be handled.
>>
>>>
>>
>>> A better way is to work with normalization() and/or
>>
>>> with methods like .translate() with dedicated
>>
>>> tables; the hard task being the creation of these tables.
>>
>>>
>>
>>> Shortly, very naive.
>>
>>>
>>
>>> jmf
>>
>>>
>>
>>
>>
>> You'll have to excuse my ignorance of this stuff.  How do I express the
>>
>> following in cp1252?
>>
>>
>>
>> def test_musical_notes():
>>
>>       txt = "Is ♬ ♫ ♪ ♩ a melody or just noise?"
>>
>>       assert slugify(txt) == "Is-a-melody-or-just-noise"
>>
>>       assert slugify_unicode(txt) == "Is-a-melody-or-just-noise"
>>
>>
>>
>> --
>>
>> My fellow Pythonistas, ask not what our language can do for you, ask
>>
>> what you can do for our language.
>>
>>
>
> I wrote: The same work could be done with, let say, cp1252.
> Understand: The same work (string manipulation) ...
> Would something like this not be more informative?
>
>>>> "Is ♬ ♫ ♪ ♩ a melody or just noise?".encode('ascii', 'replace').decode('ascii')
> 'Is ? ? ? ? a melody or just noise?'
>>>>
>>>>
>
> cp1252 analogy.
>
>>>> 'abc€€€'.encode('cp1252').decode('ascii', 'replace').encode('ascii', 'replace').decode('ascii')
> 'abc???'
>>>>
>
> Again, not a "unicode" question, more "how to handle strings in a judicious way?"
>
> jmf
>

Now I'm really confused.  I thought that the musical notes I've shown 
above are represented as unicode characters.  So I'd like to see how you 
jmf would represent them in cp1252.  Instead you give me an example 
showing a simple string manipulation which simply strips the characters 
that I want to see, then an even simpler example, clearly not what I've 
asked for.

-- 
My fellow Pythonistas, ask not what our language can do for you, ask 
what you can do for our language.

Mark Lawrence




More information about the Python-list mailing list