我是靠谱客的博主 大方糖豆,最近开发中收集的这篇文章主要介绍pymssql查询结果中文乱码处理前言导致乱码的原因解决方案正确的姿势参考:广告,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

我在使用pymssql的遇到了2个问题
问题1:sql语句打印出来在数据库能查到数据,但在pymssql查不出来
问题2:能查出来呢!却又是这样的乱码:2019´¨0106Ãñ³õ4846Ô­¸æ:°×ÁÖ¡¢±»¸æ:LUSHA ZHANG
然后,就是各种百度乱七八糟的帖子翻了不少,最后看到这哥们的博客。

导致乱码的原因

sql语句sql语句里写得太复杂。比如:有使用多表联查,字段拼接

解决方案

乱码的地方加上.encode(‘latin1’).decode(‘gbk’),先编码成SQL server支持的编码格式,再解码成中文。

正确的姿势

        my_sql = "select a.id,CAST(b.nh as varchar)+CAST(b.fyjc as varchar)+CAST(b.az as varchar)+CAST(b.hs as varchar)+CAST(b.dsr as varchar) as my_ah from tasks as a left join transfer.dbo.g_ajz as b on a.anjian_id = b.number where a.TaskName = '" + 
            Entry_hs.get()+"' and a.Faguan like '%"+Entry_cbr.get()+"%'"
    print(my_sql)
    # 创建数据库链接
    connect = pymssql.connect('地址', 'sa', '*****',
                              'database', charset='utf8')  # 服务器名,账户,密码,数据库名
    if connect:
        print("连接成功!")
    cursor = connect.cursor()  # 创建一个游标对象,python里的sql语句都要通过cursor来执行
    cursor.execute(my_sql)  # 执行sql语句
    # print(cursor.fetchall())
    for item in iter(cursor.fetchall()):
        print(item[1].encode('latin1').decode('gbk'))
    # 关闭链接
    cursor.close()
    connect.close()

参考:

pymssql读取varchar字段中文显示乱码的问题分析

广告

如有定制爬虫需求请联系:1109765190@qq.com

最后

以上就是大方糖豆为你收集整理的pymssql查询结果中文乱码处理前言导致乱码的原因解决方案正确的姿势参考:广告的全部内容,希望文章能够帮你解决pymssql查询结果中文乱码处理前言导致乱码的原因解决方案正确的姿势参考:广告所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部