pythonpycharm 2019-04-17
python一直对中文支持的不好,最近老遇到编码问题,而且几乎没有通用的方案来解决这个问题,但是对常见的方法都试过之后,发现还是可以解决的,下面总结了常用的支持中文的编码问题(这些方法中可能其中一个就能解决问题,也可能是多个组合)。
(1)、首先,要保证文件的开头要加上编码设置来说明文件的编码
代码如下:
#encoding=utf-8
代码如下:
conn=pymssql.connect(server='.',user='', password='',database='MyTest',charset='utf8')
代码如下:
import sys reload(sys) sys.setdefaultencoding('utf8')
一个简单的完整的python连接mssqlserver的例子如下(得安装pymssql包):
代码如下:
#encoding:utf8 import sys reload(sys) sys.setdefaultencoding('utf8') import pymssql try: conn=pymssql.connect(server='.',user='', password='',database='MyTest',charset='utf8') sql="select * from UserInfo" cur=conn.cursor() cur.execute(sql) data=cur.fetchall() conn.close() print data except Exception,e: print e
运行结果如下:
代码如下:
[(u'20093501', u'\xb9\xf9\xbe\xb8', u'\u7537 ', 35, u'\xb4\xf3\xcf\xc0'), (u'20093502', u'\xbb\xc6\xc8\xd8', u'\u5973 ', 34, u'\xc3\xc0\xc5\xae'), (u'20093503', u'\xc1\xee\xba\xfc\xb3\xe5', u'\u7537 ', 25, u'2B\xc7\xe0\xc4\xea'), (u'20093504', u'\xc8\xce\xd3\xaf\xd3\xaf', u'\u5973 ', 24, u'\xc6\xaf\xc1\xc1')] [Finished in 0.2s]
上述代码中第14行data是整个查询的结果,如果指定某个具体的字段,如print data[0][2](表示取查询结果的第一行第三列的字段的值),则会输出中文。
其实不仅仅是mssqlserver数据库,mysql(需下载MySQLdb包)、sqllite(python自带的文件数据库)、mongodb(需下载PyMongo包)等或者是普通文本文件也是类似的解决方案。