9
votes

UnicodeencodeError: le codec 'ASCII' ne peut pas encoder les caractères en position 0-3: ordinal non dans la plage (128)

Quand j'exécute mon code, j'obtiens cette erreur: xxx

mon code est: xxx

s'il vous plaît comment je peux résoudre ce problème .

merci


1 commentaires

Il convient de souligner ici que ce problème est exactement pourquoi Python 3.x existe. Êtes-vous sûr de vouloir apprendre toutes les choses maladroites nécessaires pour traiter de mélanger des chaînes unicode et non unicode dans une ancienne version du langage juste pour tout apprendre dans une année ou deux, plutôt que d'apprendre plus facilement et plus récente façon maintenant?


4 Réponses :


-2
votes

Votre fichier statique / users.txt doit contenir des caractères non unicode. Vous devez spécifier tout encodage dans votre programme. Pour Intsnace utf-8 . Vous pouvez en savoir plus ici: Unicode HOWTO .


3 commentaires

Un personnage dont l'identité n'est pas attribuée au moyen des tables Unicode.


@Amatellanes s'il vous plaît pouvez-vous vérifier ces quenstions http://stackoverflow.com/questions/25088887/nimbuzz-login-co nfig-code-dosnt-work et aidez-moi avec mon problème.


@amatellanes: son fichier ne contient presque certainement aucun caractère non unicode. Et, si cela le faisait, UTF-8 ne vous aiderait pas, car l'UTF-8 n'encore que les caractères Unicode.



5
votes

Le problème est que "{}" est non-unicode str , et que vous essayez de format A unicode dans elle. Python 2.x gère qui en codant automatiquement du unicode avec sys.gedefaulageinging () , qui est généralement 'ascii' , mais vous en avez caractères non ascii.

Il y a deux façons de résoudre ce problème:

  1. encoder explicitement que Unicode dans le jeu de caractères approprié. Par exemple, si c'est UTF-8, do "{}". Format (Source [1] .Code ('utf-8')) .

  2. Utilisez un Unicode chaîne de format: u "{}". Format (source [1]) . Vous avez peut-être toujours besoin de codé que userid ultérieurement; Je ne sais pas comment votre fonction write_file fonctionne fonctionne. Mais il est généralement préférable de garder tout ce que possible unicode aussi longtemps que possible, de coder et de décoder uniquement sur les arêtes mêmes que d'essayer de mélanger et de faire correspondre les deux.

    Tout ce qui étant dit, cette ligne de code est inutile. "{}". Format (FOO) Convertit FOO à un STOR , puis le formate dans le même STR . Pourquoi?


1 commentaires

Merci. Maintenant, c'est du travail lorsque j'utilise "{}". Format (Source [1] .encode ('utf-8'))



0
votes

Une solution consiste à définir un encodage par défaut sur UTF-8 au lieu d'ASCII dans votre SiteCustomize.py

Changement de codage par défaut de Python?


0 commentaires

5
votes

Prenez ces fonctions ici lors de la manipulation des chaînes de codage inconnu:

Vous voulez travailler avec le texte? xxx

Vous voulez stocker le texte, par exemple dans une base de données, utilisez ceci: xxx


0 commentaires