我使用Django开发我的Web服务。 我有一个数据库名称是'django_dulichdb',并有一个表'polls_dulich'。 我设置了CHARACTER SET utf8和COLLATE utf8_general_ci,但是当它被python代码获取时,数据库和数据之间仍然存在差异。就是这样
输入SHOW variables LIKE '%character_set%';
后,这是我的字符集
> | Variable_name | Value |
> +--------------------------+----------------------------+ | character_set_client | latin1 | |
> character_set_connection | latin1 | |
> character_set_database | utf8 | |
> character_set_filesystem | binary | |
> character_set_results | latin1 | |
> character_set_server | latin1 | |
> character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/
1。在mysql中,我输入
select * from polls_dulich
结果是真的。它显示正确的越南语
tp://travelhanoi.com.vn/Data/ResizeImage/~/userfiles/files/diem du lich ha noi / van_mieu_quoc_tu_giamx131x99x2.jpg |河内| VănMiếu,banđầupànơihọccácáchoàngtử,saumởrộngthunhậncảcáchọctrògiỏisongongiênhạ。 VănMiếuQuốcTửGiambanđầupànơigọcủcáchoàngtử,saumởrộngthunhậncả...
2>在终端中,我输入
python select.py
调用select.py。那是select.py
import MySQLdb as mdb
con = mdb.connect('localhost', 'root', '1', 'django_dulichdb');
with con:
cur = con.cursor()
cur.execute('SET NAMES utf8;')
cur.execute("SELECT * FROM polls_dulich")
for i in range(cur.rowcount - 10):
row = cur.fetchone()
print (i+1),row[4]
结果就是那样
2ChùacóquihoạttÆ°Æ¡ngá'»'igá»ngồmcổng tam quan,phÆ°Æ¡ngÄ'ình,haidãy dảivÅ©vÃnhÃthá»mẫu。 CáckiếntrúcnÃytuymá»>iÄ'°°»£ctrùngtutvïnăm1954nhÆ°ngáng«ngiữ''°°»£ctnnhcổtruyá »n trong ...
我不知道为什么会这样。请帮帮我。非常感谢:(
答案 0 :(得分:0)
Whowww,非常简单:D。当遇到这样的麻烦时,这是任何人的答案只需修改select.py:
# -*- coding: utf-8 -*-
# code above for using utf8
import MySQLdb as mdb
import sys
reload(sys)
con = mdb.connect(host='localhost',
user='root',
passwd='1',
db='django_dulichdb',
charset='latin1',
use_unicode=False);
with con:
cur = con.cursor()
cur.execute("SELECT * FROM polls_dulich")
for i in range(cur.rowcount - 10):
row = cur.fetchone()
print (i+1),row[4]
:d。可以帮助别人。