爱问知识人 爱问教育 医院库

py连接mysql的中文显示问题有哪些?

首页

py连接mysql的中文显示问题有哪些?

web.py连接mysql的中文显示问题有哪些?

提交回答

全部答案

    2017-07-27 11:41:11
  •   近几天研究使用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自动交互。
      

    徐***

    2017-07-27 11:41:11

类似问题

换一换
  • 系统软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):