2016-11-03 7 views
0

管理コンソールを使用して、私のデータベースのモデル。私のデータベースの行はウェブサイトから削り取られていたので、私が間違っていれば、私は誤ってu '\ xa0'文字を掻き出し、Djangoはこれを好まない。私が間違っているなら私を訂正してください。Django - Postgres - 'ascii'コーデックは、位置0に文字u ' xa0'をエンコードできません:範囲内の序数(128)

これを修正するには、psqlクエリを実行してu '\ xa0'文字を見つけ、必要なもの(この場合は空文字列)に置き換えることができると思います。

私は多分、私はpostgresのから置き換える関数を使用すると考えていた:

UPDATE <table> SET <field> = replace(<field>, '\xa0', '') 

が、動作して表示されません。

ヒント?

エラー:

'ascii' codec can't encode character u'\xa0' in position 0: ordinal not in range(128) 
+0

使用しているPythonのバージョンはどれですか? Pythonの文字列が2.8から3.xに大幅に変更されました – yehe

+0

私のvirtualenvで@yehe 2.7.11+ – Programmingjoe

答えて

0

を、これは私がやったことです。私はcsvファイルに私のデータベースを引っ張ったので、簡単にctrl + fで検索することができました。私はデータベースが理解できないアスキー文字を見つけ出し、私のニーズに合わせて調整しました。私は調整されたcsvでデータベースを上書きしました。

私のデータベース情報はウェブから削り取られていたので、将来私のデータベースは私が擦った情報を受け入れるようにします。

0

はたぶん、あなたは__unicode__()メソッドを実装しましたし、代わりにユニコードのあなたは、文字列を返します。

ですから、このやっている:

def __unicode__(self): 
    return "%s" % self.something 

の代わりに:同様の問題に遭遇し、誰のために

def __unicode__(self): 
    return u"%s" % self.something 
+0

私はUnicodeを実装していません。私は可能な解決策は、私はPythonをアップグレードすることができ、すべての私のパッケージがまだ動作するか、私のデータベース情報を修正することを祈っていると思います。 – Programmingjoe

関連する問題