竜@コンプネットです

未だに UnicodeCol() で日本語がセットできません
現象は [turbogears-ja:127] の ayuさんと同じで、以下のエラーが発生
します

UnicodeEncodeError: 'latin-1' codec can't encode characters in
position M-N: ordinal not in range(256)

エラーが発生する行は、MySQLdbのcursors.pyの145行目辺りにある以下
の箇所になります

class BaseCursor(object):
    def execute(self, query, args=None):
            :
        db = self._get_db()
        charset = db.character_set_name()
        query = query.encode(charset)

このコードを見る限りは、sqlサーバとのコネクションから文字コードを
取得するようになっているはずなので、sqlobject.dburiでクエリー文字
列に 'mysql:....?charset=utf8&sqlobject_encoding=utf-8' が指定して
あれば、'utf-8' が返るのが正しい動作だと思われます
しかし、db.charctor_set_name() の戻り値は常に 'latin-1' になるよう
です
これは sqlobject.dburi 以外にどこかで、コネクションの character code
を指定する箇所があると予想されるのですが、皆目見当もつきません

結局、私の場合は 直接 'utf-8' という文字列が得られるように、上記ファ
イルを書き換えて逃げてしまいました

[turbogears-ja:127] では sqlobject.dburiのクエリー文字列に
'read_default_file=my.cnf' を追加することで回避しているようですが、
turbogears的にもっとスマートな解決方法があるような気がします

どなたかご存じであればご教示ください

--
Nakane Ryuji  living at Nagoya
// mailto:[EMAIL PROTECTED]

--~--~---------~--~----~------------~-------~--~----~
このメッセージは、次の Google グループへの参加を申し込まれたことを確認す
るために送信されました。 Google グループ "turbogears-ja" グループ。
 このグループに投稿するには、次の宛先にメールを送信してください。 turbogears-ja@googlegroups.com
 このグループから退会するには、次へメールをお送りください。 [EMAIL PROTECTED]
 その他のオプションについては、次の URL からグループにアクセスしてくださ
い。 http://groups.google.co.jp/group/turbogears-ja?hl=ja
-~----------~----~----~----~------~----~------~--~---

メールによる返信