python读取SQL server varchar格式中文乱码的三种处理方法

用python写个报表抓取程序,无奈数据库里面的中文字段用的varchar格式,读出来以及写到excel里面都是乱码,专门查了一下资料,找到3个解决方案,都切实可行,如下:

1.将数据库里面的字段格式改为nvarchar,可以立即解决问题,但是可能会导致跑在上面的其他系统出问题,所以还有下面第二种方法

2.在编写sql语句的时候,直接重新编码,用CONVERT(nvarchar(100),invdetail.transname) transname,例如:

select city_name from city_table,修改为下面的代码

select CONVERT(nvarchar(100), city_name)  city_name from city_table

此方法直接修改字段的格式为nvarchar,可以直接解决问题

3.在Python程序里面将读出来的每个字段重新编码

city = city.encode('latin-1').decode('gbk')

重新编码后,就可以正常显示中文了,以上三个方法我都试验,确实可行,依据实际需求选用即可

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值