Modelのverbose_name(その3)
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 8-9: ord
inal not in range(256)
どうやら、このエラーを実際にraiseしている箇所は、MySQLdb\connections.py 148〜149行目のunicode_literalらしい。
def unicode_literal(u, dummy=None, self=proxy(self)):
return self.literal(u.encode(self.charset))
ここでself.charsetの値が'latin-1'になっているため、コードポイントが256以上の文字でUnicodeEncodeErrorが発生するようだ。
この値は同じファイルの136行目で設定されている。
self.charset = self.character_set_name().split('_')[0]
self.character_set_name()の値を表示させて見ると、'latin_swedish_ci' となっている。
いろいろと調べてみたが、今のところself.character_set_name()を変更する方法がよく分からない。次のように固定にしてお茶を濁すことにする。とりあえず、Adminの画面ではうまく行っているように見える。
self.charset = 'utf8'