a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 181|回复: 0

[综合辅导] Linux认证web.py连接mysql中文显示问题

[复制链接]
发表于 2012-8-4 12:07:07 | 显示全部楼层 |阅读模式
Linux认证web.py连接mysql中文显示问题
) `2 s" g! `% x% A3 a) c7 Eweb.py连接mysql的中文显示问题
3 y  E+ k9 z" C" s( f近几天研究使用python写一个管理程序,需要使用web.py,但在使用和显示中文时总是出错,查了一些资料,终于搞清楚了。
5 u, `3 e( O( p" H4 b6 \首先,要了解一些基本的知识。python的字符串分为两种,一种是str,一种是unicode,他们之前可以互相转换的。str转unicode,使用decode函数,反之使用encode函数。看个具体的例子:
9 I5 n7 v/ p% H' n( L6 ~1 cstr1=‘你好’ #这时str1为str类型,因为我是在中文windows下运行,所以使用默认的gbk编码- ?& `- M% H& f, N: ]
str2=str1.decode(‘gbk’) #这时str2为unicode,注意我们是使用的gbk进行解码,其实在中文windows下系统默认编码为gbk,所以我们也可以不输入参数+ X, A+ f. o' R  R& ^
str3=str2.encode(‘utf-8’)#这时str3为str类型,但编码为utf-8,这时我们不可以直接print,否则会为乱码,这很容易理解,因为我们在中文windows下,只能打印gbk编码的中文
1 I+ i3 G/ k: {1 H& q1 _, F* O好接下来让我们来看看如何把中文插入到mysql数据库,最好能统一编码,这里为了方便,我统一使用utf-8./ n4 T& v. E2 F1 I
先建立表,注意把表的默认编码改为utf8(也可以直接把数据库的默认编码改为utf8,这里就不多说了; Z% }) h  S/ ?- }3 s8 L3 q
CREATE TABLE `network` (/ X9 o- x9 X) r  W
`id` int(11) NOT NULL auto_increment,
  t- z( _4 q0 ?( g1 v7 C% Y4 `, |3 F`net_str` varchar(45) NOT NULL,
3 }* E- R1 X, P4 g1 m`flag` varchar(10) default NULL,3 \% Q4 Q: z, |( E+ G. q  Z
` `descript` text,
8 [/ A6 B, j5 t% VPRIMARY KEY (`id`),
5 ?! x' c9 B  s4 V) ENGINE=MyISAM DEFAULT CHARSET=utf8 |" g" f5 q2 g* K& R2 M0 M0 @  V
连接数据库代码:! p& H/ T4 @! H2 U7 T# n
conn = MySQLdb.connect (host = “1.1.1.1”,user = “qh”,passwd = “yourpass”,db = “yourdatabase”,charset=‘utf8’)% c" y( O* p" a6 _. |
在插入数据时一定要称转化,把gbk的中文转为utf8的然后再插入到mysql(因为我的数据都是在windows下编辑的,所以文件的中文默认都是以gbk编码的,当然你也可以,使用文本编辑器直接把文件另存为utf-8格式)
! @& |# n# B6 L( u' k; \2 Ustr1=str2.decode(‘gbk’)#str2是我从文件文件里直接读出的数据,现在str1是unicode了
! z8 U( `0 Z: z3 j- |& S( Fstr3=str1.encode(‘utf-8’)#这时str3为str类型了,可以使用insert直接加入到mysql数据了
' U# [! ?% H4 ~. V% C在web.py上取数) n; i9 T  R( ^
db1 = web.database(dbn=‘mysql’, host = “1.1.1.1”,user = “qh”,passwd = “yourpass”,db = “yourdatabase”,charset=‘utf8’,use_unicode=0)
( E- s" b- F& Q3 G% ^) R" j注意一定要charset=‘utf8’,use_unicode=0,这样取出来的数据才是str,然后可以在utf-8编码为web页直接显示了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-5 00:56 , Processed in 0.174066 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表