# -*- coding: iso-8859-1 -*-
import string
def getRedirectTitle(page):
origin=u'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿýÑñÇç\u0161\u017e'
dest= u'AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyyNnCcsz'
#On crée une table qui va servir à la traduction avec string.maketrans()
table = {}
for pos, ch in enumerate(origin):
table[ord(ch)] = ord(dest[pos])
redirect = page.translate(table)
redirect = redirect.replace( u'æ', u'ae').replace( u'Æ', u'AE').replace( '\u0153', u'oe')
return redirect
==>
Traceback (most recent call last):
File "create_redirects_accent.py", line 219, in ?
main()
File "create_redirects_accent.py", line 215, in main
bot.run()
File "create_redirects_accent.py", line 106, in run
redirectpage = getRedirectTitle(page_t)
File "create_redirects_accent.py", line 62, in getRedirectTitle
table=string.maketrans(origin, dest)
ValueError: maketrans arguments must have same length
if I put origin & dest in u' ... ', I have
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-55: ordinal not in range(128)
Traceback (most recent call last):
File "create_redirects_accent.py", line 219, in ?
main()
File "create_redirects_accent.py", line 215, in main
bot.run()
File "create_redirects_accent.py", line 106, in run
redirectpage = getRedirectTitle(page_t)
File "create_redirects_accent.py", line 62, in getRedirectTitle
table=string.maketrans(origin, dest)