栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【无标题】

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【无标题】

项目场景:

提示:这里简述项目相关背景:

python操作sql server数据库


问题描述

提示:这里描述项目中遇到的问题:

python 读取数据库时遇到中文乱码

import pymssql
conn = pymssql.connect(server="xxx",user="xxx",password="xxx",database="xxx",charset='utf8')
##################################
# 输出
"""
                                   IndustryTopicJson
0  [{"IndustryName":"ÒµÎñ¸úµ¥¾­Àí","cid":393814,"...
1  [{"IndustryName":"·þ×°·ÄÖ¯ÖʼìÔ±(QA/QC)","cid...
2  [{"IndustryName":"Êг¡/ÓªÏú/ÍØÕ¹Ö÷¹Ü","cid":...
3  [{"IndustryName":"½»»¥Éè¼ÆÊ¦","cid":407299,"Ci...
4  [{"IndustryName":"ÒµÎñÍØÕ¹Ö÷¹Ü/¾­Àí","cid":41...
5  [{"IndustryName":"´ó¿Í»§ÏúÊÛ¾­Àí","cid":3006,"...
6  [{"IndustryName":"ÆäËûÀÏʦ","cid":413964,"City...
7  [{"IndustryName":"ÐÐÕþ×ܼà","cid":6082,"CityNa...
8  [{"IndustryName":"³öÄÉÔ±","cid":415388,"CityNa...
9  [{"IndustryName":"¸±×ܾ­Àí/¸±×ܲÃ","cid":6896...
"""

原因分析:

提示:这里填写问题的分析:
SQL Server中涉及到中文的缺省字符集是CP936,所以将charset配置为CP936,就解决了中文乱码的问题。


解决方案:

方案A:
    将编码设置为cp936

import pymssql
conn = pymssql.connect(server="xxx",user="xxx",password="xxx",database="xxx",charset='cp936')

方案B:
    可以利用sql server的内置方法convert 将中文转为 nvarchar类型
    缺点:转化的长度最大为4000,超过的部分会自动截断,导致数据加载不全

import pymssql
conn = pymssql.connect(server="xxx",user="xxx",password="xxx",database="xxx",charset='utf8')
cursor = conn.cursor()
cursor.execute('select convert(nvarchar(100),jobName) from test_tb')
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/987476.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号