UnicodeDecodeError: 'ascii' codec ne peut pas décoder les octets 0xc3 en position 0: ordinal pas in range(128)
Je suis en train de google appengine python 2.5.
Je suis en train de vivre unicodedecoderror sur le code suivant, car myuser nom a la même valeur
userName = unicode(userName).encode('utf-8') # äºï¼égãwmj is value in this variable
userName = unicode(userName).encode('utf-8')
strData = '{\"Sid\" :1, \"Oppid\" :%s, \"Aid\" :%s, \"EC\" :\"%s\", \"Name\" :\%s"' % (enemyID, userID, userEmpCode,userName)
params = {'deviceToken' : oDeviceToken,
'message' : strMessage,
'CertificateId' : certificateId,
'Data' : strData
}
result = urlfetch.fetch(url = url,
payload = urllib.urlencode(params),
method = urlfetch.POST,
headers = {"Authorization" : authString},
deadline = 30
)
Je suis en train de faire les étapes suivantes sur le nom d'utilisateur de l'encoder en utf-8 pour que je puisse l'envoyer en tant que charge utile.
username = unicode(username).encode(utf-8)
Je crois que l'erreur se produit quand je l'appelle urllib.urlencode(params)
Veuillez vous guide ce qui ne va pas.. ou vous pouvez..
et ce qui devrait être l'ultime stratégie de chaîne unicode sur appengine python..
J'ai essayé différentes solutions de lire les différents fils.. mais n'a toujours pas de travail
Veuillez fournir une stacktrace. Et peut-être d'essayer de produire un minimum de travail exemple de ne pas utiliser des variables qui sont définies par ailleurs.
OriginalL'auteur user1508653 | 2012-07-07
Vous devez vous connecter pour publier un commentaire.
Vous êtes problème semble être que vous appelez
unicode(userName)
sans un encodage sur votre déjà codé de la chaîne, de sorte qu'il "est par défaut la valeur par défaut de codage de la chaîne", ce qui semble êtreascii
dans votre cas.Vous ne devriez probablement pas appel
unicode
en tout cas, si vous savez que c'est une valeur unicode, vous êtes bien déjà, si pas, appelez.decode
avec le bon encodage.Si vous n'êtes pas sûr, test à l'aide de
isinstance
depuis à essayer de décoder une valeur unicode entraînera encore une autre erreur.OriginalL'auteur oxc
J'ai eu un problème similaire lors du portage de Python 3 du code de Linux Ubuntu 14.04 pour FreeBSD 10.3. Le dernier système semble utiliser ASCII par défaut au lieu de UTF-8 lors de l'ouverture de fichiers avec Python 3.4.4.
Précisant
encoding='utf-8'
avec le fichieropen
commande résolu mon problème:OriginalL'auteur Serge Stroobandt