0

latin-1 データベースには ' \222\222\223\225' があり、django モデルからこのフィールドを取得しようとすると、 が返されu'\u2019\u2019\u201c\u2022'ます。

from django.db import connection                                                                                                                                                                                                                                                    
(Pdb)                                                                                                                                                                                                                                                                                  
cursor = connection.cursor()                                                                                                                                                                                                                                                        
(Pdb)                                                                                                                                                                                                                                                                                  
cursor.execute("SELECT Password from campaignusers WHERE UserID=26")                                                                                                                                                                                                             
(Pdb)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
row = cursor.fetchone()

だから私はそれに足を踏み入れて入ります

/usr/local/python2.5/lib/python2.5/site-packages/MySQL_python-1.2.2-py2.5-linux-i686.egg/MySQLdb/cursors.py(327)fetchone()->(u '\u2019...1c\u2022',)

これは卵であるため、これ以上踏み込むことはできませんが、MySQL python ドライバーがデータをラテン 1 として解釈していないようです。

誰が何が起こっているのか手がかりを持っていますか?

4

2 に答える 2

1

すでに尋ねられた質問を少しブラウジングすると、昨日尋ねられて回答されたUTF-8 latin-1 conversion issuesにつながったでしょう。

ところで、正確なタイトルを思い出せなかったので、django+'\222\222\223\225' でググってみました。覚えておいてください、子供たち、Google はあなたの友達 (tm) です。

于 2008-11-09T16:54:16.633 に答える
0

DEFAULT_CHARSET を別のものに定義しない限り、Django は UTF-8 を使用します。他の文字セットを定義するには、すべてのテンプレートをこの文字セットでエンコードする必要があることに注意してください。この文字セットは、電子メールのエンコード、サイトマップやフィードなどであちこちに表示されます。したがって、IMO、最善の方法は UTF-8 に移行することです。これにより、Django の頭痛の種が大幅に軽減されます (内部的にはすべて Unicode であり、問​​題はテンプレートや入力などのアプリの境界にあります)。

于 2008-11-19T21:34:21.470 に答える