py连接mysql的中文显示问题有哪些?
web.py连接mysql的中文显示问题有哪些?
近几天研究使用python写一个管理程序,需要使用web。py,但在使用和显示中文时总是出错,查了一些资料,终于搞清楚了。 首先,要了解一些基本的知识。python的字符串分为两种,一种是str,一种是unicode,他们之前可以互相转换的。
str转unicode,使用decode函数,反之使用encode函数。看个具体的例子: str1='你好' #这时str1为str类型,因为我是在中文windows下运行,所以使用默认的gbk编码 str2=str1。decode('gbk') #这时str2为unicode,注意我们是使用的gbk进行解码,其实在中文windows下系统默认编码为gbk,所以我们也可以不输入参数 str3=str2。
encode('utf-8')#这时str3为str类型,但编码为utf-8,这时我们不可以直接print,否则会为乱码,这很容易理解,因为我们在中文windows下,只能打印gbk编码的中文 好接下来让我们来看看如何把中文插入到mysql数据库,最好能统一编码,这里为了方便,我统一使用utf-8。
先建立表,注意把表的默认编码改为utf8(也可以直接把数据库的默认编码改为utf8,这里就不多说了 CREATE TABLE `network` ( `id` int(11) NOT NULL auto_increment, `net_str` varchar(45) NOT NULL, `flag` varchar (10) default NULL, ` `descript` text, PRIMARY KEY (`id`), ) ENGINE=MyISAM DEFAULT CHARSET=utf8 | 连接数据库代码: conn = MySQLdb。
connect (host = "1。1。1。1",user = "qh",passwd = "yourpass",db = "yourdatabase",charset='utf8') 在插入数据时一定要称转化,把gbk的中文转为utf8的然后再插入到mysql(因为我的数据都是在windows下编辑的,所以文件的中文默认都是以gbk编码的,当然你也可以,使用文本编辑器直接把文件另存为utf-8格式) str1=str2。
decode('gbk')#str2是我从文件文件里直接读出的数据,现在str1是unicode了 str3=str1。encode('utf-8')#这时str3为str类型了,可以使用insert直接加入到mysql数据了 在web。
py上取数 db1 = web。database(dbn='mysql', host = "1。1。1。1",user = "qh",passwd = "yourpass",db = "yourdatabase",charset='utf8',use_unicode=0) 注意一定要charset='utf8',use_unicode=0,这样取出来的数据才是str,然后可以在utf-8编码为web页直接显示了 考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。
其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。如有侵犯您的权利,请联系我们,本站会立即予以处理。 编辑特别推荐: linuxln命令详解 nginx关于服务静态文件的配置 使用expect实现ssh自动交互。
答:这是因为你的mysql数据使用的编码方式和jdbc使用的不一样造成的 解决这个问题的方法就是在进行数据库处理之前将你的数据编码修改为数据库的编码格式 使用Str...详情>>
问:同事ip:10.101.107.28 我的IP:10.101.104.23我们在...
答:你们公司是WINDOWS域环境吗,如果是的话,你在网上邻居里应该能看到对方的主机。让她把文件夹共享出来就可以。 如果不是WINDOWS域,那得看你们是不是在一个...详情>>
问:数据结构顺序表的建立,可定义顺序表 #define maxnum elemtyp...
答:打开VC ,然后点击新建,出来界面之后选择Win32 Console Application并输入工程的名称和选择项目的位置,然后出现“一个空工程”,在点击“...详情>>