UniCodeenCodeError: 'ASCII'コーデックはデータベースから©= nのために文字をエンコードできません

StackOverflow https://stackoverflow.com//questions/24052342

質問

この部分を含む文字列を含むデータベースから取得するフィールドがあり、これを取得しながらエラーが発生します。

"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関数を削除してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top