2016-04-13 6 views
0

Djangoでは、外部コマンドを使用してMySQLに対してクエリをスローしています。 utf-8文字(Cami ó nのような種類)のフィールドを回復するまでは、すべてがうまくいっています。その時点で私はもうクエリセットに通過しcan'tとMySQLはクエリからのフィールド結果のエンコーディング

'ascii' codec can't encode character u'\xf3' in position 34: ordinal not in range(128) 

私のコードを返します。次のいずれかです。

cursor = connection.cursor() 
query = "SELECT * FROM " + table_name + " ORDER BY " + "1" 
cursor.execute(query) 

rows = cursor.fetchall() 
for row in rows: 
    result = [] 
    for field in row: 
     print field 
     result += [str(field)] 

どのように私はこのような状況を避けることができますか? おかげメイツ...

EDITED: それはあなたのPythonスクリプト

# -*- coding: utf-8 -*- 
+0

次のものの元のフィールド文字列を呼び出して置き換えます。 field = unicodeフィールド).encode( "utf-8"、 "replace") –

+2

なぜあなたはこれをやっていますか?なぜDjangoモデルを使用していないのですか? –

+0

ハハハハ...本当に長い歴史...私はほとんどそれを解決しようと夢中になる... LOL –

答えて

1

てみて動作し、次の元のフィールドの文字列を置換one work ...フィールド=ユニコード(フィールド).encode( "utf-8"、 "replace")

+0

あなたの答えをありがとう。これはDjangoプロジェクトです。とにかくそれを使うことができますか? 私の見解では、私が直接見ることができる解決策が見つかりました。私の更新を確認してください。ありがとう。 –

0

呼び出しの先頭に以下の行を追加しfield = unicode(field).encode("utf-8", "replace")

関連する問題