幻幻的程序猿 2022-12-11 17:19 采纳率: 75%
浏览 79
已结题

pymssql连接SQL Server输出中文乱码

问题遇到的现象和发生背景

我用Python中pymssql库连接SQL Server,然后查询表,输出内容,对应的中文为啥编乱码了

遇到的现象和发生背景,请写出第一个错误信息

求职者编号:15011 ,求职者姓名:Ø¿¹¦ºÆ,求职者性别:ÄÐ,求职者电话:1536248201

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
import pymssql
connect=pymssql.connect(host='127.0.0.1:1433',user='sa',password='123456',database='Career',charset='utf8')
cursor=connect.cursor()
cursor.execute("""
SELECT *
FROM 求职者信息表
WHERE 求职者编号 LIKE '15011';
""")
row = cursor.fetchone()
while row:
    print("求职者编号:%s,求职者姓名:%s,求职者性别:%s,求职者电话:%s" % (row[0],row[1],row[2],row[3]))
    row = cursor.fetchone()
运行结果及详细报错内容

改了编码格式后,执行cursor.execute语句报错
(102, b"Incorrect syntax near '\xb0'.DB-Lib error message 20018, severity 15:\nGeneral SQL Server error: Check messages from the SQL Server\n")

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

目前我去找的大多方法都是改那个编码格式,GBK,GB18030等等,不过都不行,有的还报错。

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
  • 写回答

3条回答 默认 最新

  • Jackyin0720 2022-12-11 19:37
    关注

    可以尝试用sql语句将varchar转为nvarchar类型
    示例:

    select convert(nvarchar(50),table_colum) as 'nvarchar_colum' from mytable where convert(nvarchar(50),table_colum) = '魏本明'
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月19日
  • 已采纳回答 12月11日
  • 赞助了问题酬金15元 12月11日
  • 创建了问题 12月11日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵