5

次のエラーの理由は何ですか? でフィルタリングしようとすると:

if MyObject.objects.filter(location = aDictionary['address']):

ここで、場所は次のように定義されます。

location = models.CharField(max_length=100, blank=True, default='')

aDictionary['address'] に英数字以外の文字 (Kīhei など) を含む文字列が含まれていると、次のエラーが発生します。

  File "/usr/lib/pymodules/python2.6/MySQLdb/connections.py", line 35, in defaul
terrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1267, "Illegal mix of collations (latin1_sw
edish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")
4

2 に答える 2

1

Python は Unicode 文字列を使用していますが、データベースは使用していません。データベースの照合順序を utf8 を使用するように変更すれば問題ありません。

于 2011-08-16T18:53:41.123 に答える