开发者社区> 科技探索者> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

python web.py 解决中文乱码

简介:
+关注继续查看

最开始没注意数据库的编码,使用默认的方式去连接:


  1. db = web.database(dbn='mysql', user='root', pw='lihuipeng007', host='localhost', db='test')  
  2.   
  3. sql = '''''''select * from tb_admin_user where login='%s' and password='%s' ''' % (username, password)  
  4. result = db.query(sql)  
  5. print result[0]['name']  

这样打印出来就会乱码

后来在数据库连接及打印的时候加上编码转换后就正常:


  1. db = web.database(dbn='mysql'user='root'pw='lihuipeng007'host='localhost'db='test'charset='latin1')  
  2.   
  3. sql = '''''select * from tb_admin_user where login='%s' and password='%s' ''' % (username, password)  
  4. result = db.query(sql)  
  5. print result[0]['name'].encode('latin1','ignore') 

最后放上服务器测试的时候发现还是会乱码,报的是这个错误:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)

然后在文件前面加入:


  1. import sys 
  2. default_encoding = 'utf-8' 
  3. if sys.getdefaultencoding() != default_encoding: 
  4.     reload(sys) 
  5.     sys.setdefaultencoding(default_encoding) 

中文显示终于正常了~~~不容易啊。。

本文转自运维笔记博客51CTO博客,原文链接http://blog.51cto.com/lihuipeng/1130797如需转载请自行联系原作者


lihuipeng

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python——Web.py詳解
  ubuntu安裝Web.py 1 sudo pip install web.py   測試代碼: 1 import web 2 3 urls = ( 4 '/(.
1022 0
Python模块——glob模块详解
Python模块——glob模块详解
47 0
Python 模块实战| 学习笔记
快速学习 Python 模块实战
42 0
Python编程:glob模块进行文件名模式匹配
Python编程:glob模块进行文件名模式匹配
46 0
Python中fileinput模块使用
fileinput模块可以对一个或多个文件中的内容进行迭代、遍历等操作。该模块的input()函数有点类似文件 readlines()方法,区别在于前者是一个迭代对象,需要用for循环迭代,后者是一次性读取所有行。
753 0
5487
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载