Python+sql 中文乱码问题

  1. # coding:utf-8
    import pymssql
    import sys
    class MSSQL:
        def __init__(self, host, port, user, pwd, db):
            reload(sys)
            sys.setdefaultencoding(‘utf8‘)
            if not db:
                raise(NameError, u"没有设置数据库信息")
            self.conn = pymssql.connect(host=host, port=port, user=user, password=pwd, database=db, charset="utf8")
            self.cur = self.conn.cursor()
            if not self.cur:
                raise(NameError, u"连接数据库失败")
        # 执行查询等有返回的sql
        def ExecQuery(self,sql):
            cur = self.cur
            cur.execute(sql)
            resList = cur.fetchall()
            return resList
        # 执行删除等无返回的sql
        def ExecNonQuery(self,sql):
            cur = self.cur
            cur.execute(sql)
            self.conn.commit()
        def colseDB(self):
            self.conn.close()
    if __name__ == ‘__main__‘:
        ms = MSSQL(host="172.16.0.137", port=‘3433‘, user="test1", pwd="test1234", db="db1533")
        insertSql = "INSERT INTO Stu_Info ([NO], [Name], [Sex]) VALUES (1001,‘张三‘,‘男‘);"
        selectSql = "select NO,Name from Stu_Info where No=1001;"
        ms.ExecNonQuery(insertSql)
        resList = ms.ExecQuery(selectSql)
        for (id, name) in resList:
            print str(name)
时间: 2024-10-19 08:53:33

Python+sql 中文乱码问题的相关文章

{转}Python IDLE中文乱码

http://hi.baidu.com/yobin/item/166e3a46537781d3c1a59257 乱码原因:因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件.但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台直接打印utf-8的字符串当然是乱码了. 解决方法:在控制台打印的地方用一个转码就ok了,打印的时候这么写:print myname.decode('UTF-8').encode('GBK') 比较通用的方法应该是:import

Python解决中文乱码问题

在Python中内部所有编码都是Unicode,Unicode属于中转码,一般来说,是先把乱码转化为中转码,再转化为我 们需要的编码,转换过程为decode -> unicode -> encode. #coding:utf-8 #-*- coding:utf-8 -*- import sys print sys.getdefaultencoding() print '中国' f = open('Hello.txt') data = f.read() f.close() print data.

python MySQLdb中文乱码

Python操作MySQL需要安装Python-MySQL可以从网上搜索一下,和一般的Python包一样安装 安装好之后,模块名字叫做MySQLdb ,在Window和Linux环境下都可以使用,试验了一下挺好用,不过又发现了烦人的乱麻问题,最后用了几个办法,解决了! 我用了下面几个措施,保证MySQL的输出没有乱麻:    1 Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8)    2 MySQL数据库charset=utf-8     3 Python连

win10下使用vscode调试python输出中文乱码的解决办法

今天在vscode中调试一个python脚本时发现中文乱码了,折腾了好一会儿才找到原因,记录一下. 很简单的一句代码测试一下: # -*- coding: utf-8 -*- print('乱码不?') 文件编码设置的也是utf-8,但是调试就是乱码,网上看大都是说设置PYTHONIOENCODING=UTF8的环境变量,尝试过发现还是不行. 其实问题在于windows下的cmd或者PS终端都是默认GBK编码,VSCODE调试时是调用的cmd的,如果把文件头和编码都改成GBK就不会乱码了,但是考

python爬虫中文乱码问题(request方式爬取)

https://blog.csdn.net/guoxinian/article/details/83047746 req = requests.get(url)返回的是类对象 其包括的属性有: req.encoding:返回编码方式 req.text:text返回的是处理过的Unicode型的数据 req.content:content返回的是bytes型的原始数据 content是把内容bytes返回. 而text是decode成Unicode. 如果headers没有charset字符集的化

oracle 导入sql中文乱码(转)

导入sql的有中文,直接在linux环境下进行复制粘贴的,发现进去的都是乱码, 修改如下: 进入oracle用户,#vi /home/oracle/.bash_profile; 在最后一行添加:export NLS_LANG="Simplified Chinese_CHINA.AL32UTF8" 重新编译.bash_profile文件或重新登录 #source /home/oracle/.bash_profile; 验证:#echo $NLS_LANG;

oracle--PL/SQL中文乱码解决方案

由于oracle不支持中文字符集,会出现以下乱码现象 解决步骤 1.打开注册表,找到ORACLE--->KEY_OraClient11g_home--->NLS.LANG  将值修改为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,如果没有NLS.LANG则新增一个 2.新增环境变量 桌面--->右键计算机--->选择属性--->高级系统设置--->高级--->环境变量,新增系统环境变量--->变量名:NLS_LANG   变量值:SIM

Python beautifulsoup 中文乱码

在爬百度"今日热点事件排行榜"的时候发现打印在控制台的中文全部显示乱码,开始怀疑控制台的原因导致了乱码,后来输出一个中文,发现显示正常. #-*- coding:utf-8 -*- import requests from bs4 import BeautifulSoup res = requests.get("http://top.baidu.com/buzz?b=341&fr=topbuzz_b1&qq-pf-to=pcqq.discussion"

PL\SQL 中文乱码

查询数据结果中,中文为乱码.解决方法: 1.输入 select * from V$NLS_PARAMETERS.查看NLS_LANGUAGE值是否为:SIMPLIFIED CHINESE.(一开始为:AMERICA).继续第2步. (注意:此图为修改后的最终结果) 2.进入注册表,HKEY_LOCAL_MACHINE --->SOFTWARE ---> ORACLE--->home名称(形如KEY_XXX),找到NLS_LANG,查看数值数据是否为:SIMPLIFIED CHINESE_