我正在使用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 li li ha noi / van_mieu_quoc_tu_giamx131x99x2.jpg |河内| VănMiếu,banđầulànơicọacáchoàngtử,saumởrộngthunhậncảcáchọctrògiỏitrongthiênhạ。 VănMiếuQuốcTửGiam banđầulànơihọccủacá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áºchtÆ°Æ¡ngÄ'á»'igá»ngồ mcổng tam quan,phÆ°Æ¡ngÄ'Ãnh,haidãydải vÅ©vÃnhÃthá»mẫu。 ÃÆtr n tu›› 1 954 954 954 954 954 954 954 1954 »n trong ...
我不知道为什么。请帮帮我。非常感谢 :(
最佳答案
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可以帮助别人。
关于python - Python-准确显示MySQL数据库中的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23634878/