Aller au contenu

Utilisateur:Loveless/trucs2

Une page de Wikipédia, l'encyclopédie libre.
# -*- 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)