Python - Codant pour la chaîne suédoise de Lettres

Je vais avoir quelques problèmes avec Python raw_input de commande (Python2.6),
Pour une raison quelconque, le raw_input ne pas obtenir de la chaîne convertie que swedify() produit et cela me donne une erreur de codage qui je suis au courant, c'est pourquoi j'ai fait swedify() pour commencer.
Voici ce que j'essaie de faire:

elif cmd in ('help', 'hjälp', 'info'):
    buffert += 'Just nu är programmet relativt begränsat,\nDe funktioner du har att använda är:\n'
    buffert += ' * historik :: skriver ut all din historik\n'
    buffert += ' * ändra <något> :: ändrar något i databasen, följande finns att ändra:\n'
    print swedify(buffert)

Cela fonctionne bien, il génère le suédois personnages, comme je veux à la console.
Mais quand j'essaie d' (dans le même code, et avec le même \x?? des valeurs, de l'impression de cette pièce:

core['goalDistance'] = raw_input(swedify('Hur långt i kilometer är ditt mål: '))
core['goalTime'] = raw_input(swedify('Vad är ditt mål i minuter att springa ' +  core['goalDistance'] + 'km på: '))

Puis-je obtenir ceci:

C:\Users\Anon>python löp.py
Traceback (most recent call last):
  File "l÷p.py", line 92, in <module>
    core['goalDistance'] = raw_input(swedify('Hur långt i kilometer är ditt mål: '))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe5' in position 5: ordinal not in range(128)

Maintenant, j'ai googlé autour de, trouvé quelques "solutions", mais aucun d'eux de travailler, un peu tristes que j'ai créer un script batch qui exécute rssa ??? dans le début, mais ce n'est pas une solution propre de l'OMI.

Ici est swedify:

def swedify(inp):
    try:
        return inp.decode('utf-8')
    except:
        return '(!Dec:) ' + str(inp)

Toutes les solutions sur la façon d'obtenir raw_input de lire ma valeur de retour de swedify()?
j'ai essayé de codages d'importation getencoder, getdecoder et d'autres, mais rien pour le mieux.

Il fonctionne très bien pour moi quand je quitte swedify et il suffit d'appeler raw_input sur le suédois invite.
qui version de python que vous utilisez? aussi, voulez-vous dire lorsque vous faites comme ceci: raw_input('Hur långt je kilomètre är ditt mål: ') parce que cela fonctionne pour moi mais puis-je obtenir la malformation de caractères dans la console en fonction de ce que la machine que je suis en cours d'exécution de mon code, et j'essaie de trouver un moyen universel de sortie å ä ö dans une console (avec différents systèmes d'exploitation, les langues et les localisations).
J'ai testé en supprimant le swedify appels et de ses œuvres pour le raw_input. Note sur ma machine j'ai dû ajouter ceci au début pour obtenir python analyse le script correctement: # coding=utf-8 est peut-être ça peut aider les autres.
Python 2.7.1. Mais c'est sur un Mac et je n'ai pas de page de codes questions que mon terminal est mis en UTF-8. Voir Lynch commentaire et essayer de le coding=utf-8 de la déclaration.
Je ne pense pas qu'il y est un tous pour obtenir de consoles pour afficher correctement parce que les consoles sont des applications natives. J'ai peut-être tort. Dans un navigateur web, en utilisant le HTML, vous pouvez montrer le caractère å sur tous les navigateurs, &#xE5; et cela fonctionne même si les utilisateurs finaux tromper leur navigateur en utilisant un encodage différent de celui envoyé par le serveur. Mais c'est un hack similaire à rssa que vous avez justement à éviter.

OriginalL'auteur Torxed | 2011-09-06