转:Python连接Sqlserver数据库(解决中文乱码版)
#! /usr/bin/env python
#最近折腾MS SQLSERVER ,被中文乱码搞的头大,最后从这个博客中看到解决方法:在建立连接时加入:......,charset='utf-8'
# #coding=utf8 """ Author: Wenlicheng Date: Description:Python连接sqlserver数据库,解决中文乱码问题 """ import pymssql import sys import os reload(sys) sys.setdefaultencoding('utf-8') os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' class MSSQL: """ 对pymssql的简单封装 使用该库时,需要在Sql Server configuration Mnanage里面讲TCP/IP协议开启 """ def __init__(self,host,port,user,pwd,db): self.host = host self.user = user self.port = port self.pwd = pwd self.db = db def __GetConnect(self): """ 得到连接信息 conn.cursor() :return: """ if not self.db: raise (NameError, "没有设置数据库信息") self.conn = pymssql.connect(host=self.host, port=self.port, user=self.user, password=self.pwd, database=self.db, charset='utf8') cur = self.conn.cursor() if not cur: raise(NameError, "连接数据库失败") else: return cur def ExecQuery(self, sql): """ 执行查询语句 返回的是一个包含Tuple的list,list的元素是记录行,tuple的元素是每行记录的字段 :param sql: :return: """ cur = self.__GetConnect() cur.execute(sql) resList = cur.fetchall() #查询完毕后必须关闭连接 self.conn.close() return resList def ExecNonQuery(self,sql): """ 执行非查询语句 :param sql: :return: """ cur = self.__GetConnect() cur.execute(sql) self.conn.commit() self.conn.close() def main(): ms = MSSQL(host='192.1.1.1', port=1234, user='sa', pwd='123456', db='LearnDB') resList = ms.ExecQuery("""select LastName,Address from person""") for (LastName,Address) in resList: print str(Address) if __name__ == "__main__": main()
转自:Python连接Sqlserver数据库(解决中文乱码版) - LeechengLove的博客 - CSDN博客
https://blog.csdn.net/LeechengLove/article/details/81036295
参考:http://www.cnblogs.com/qianlifeng/archive/2012/02/06/2340367.html
活到老,学到老。

浙公网安备 33010602011771号