UniCodeenCodeError: 'ASCII'コーデックはデータベースから©= nのために文字をエンコードできません
-
21-12-2019 - |
質問
この部分を含む文字列を含むデータベースから取得するフィールドがあり、これを取得しながらエラーが発生します。
"UnicoDeenCodeError: 'ASCII'コーデックは12-15の文字で文字をエンコードできません。任意の範囲内(128)"
このエラーを検索し、他の人々はこのu'\xa0
などのようなものを始めるユニコードのために問題を抱えていましたが、私は特殊文字のためにそれを考えます。データベースの変更は、アクセスの下ではありません。アクセスできるだけです。
コードはここにあります。(実際には外部URLへの呼び出し)
req = urllib2.Request(url)
req.add_header("Content-type", "application/json")
res = urllib2.urlopen(req,timeout = 50) #50 secs timeout
clientid = res.read()
result = json.loads(clientid)
.
その後、結果変数を使用して上記の文字列を取得し、この行でエラーを出します。
updateString +="name='"+str(result['product_name'])+"', "
. 解決
データベースに挿入される前に、データに使用されるエンコーディングを見つける必要があります。それが最も一般的ですのでそれはUTF-8であると仮定しましょう。
その場合は、ASCIIデコードの代わりにUTF-8デコードしたいとします。あなたはコードを提供しませんでしたので、"data".decode()
を持っていると思います。"data".decode("utf-8")
を試してください。データがこのエンコーディングを使用してエンコードされている場合は、機能します。
他のヒント
だから、文字列がすでにUnicodeさんのように聞こえます。そのため、その行にstr()
とunicode
関数を削除してください。
所属していません StackOverflow