雄关漫道真如铁, 2022-02-14 15:13 采纳率: 0%
浏览 77

python 对 Sqlserver 数据库查询中文乱码问题

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

以下很简单的代码, 用的是 python3.8.8 (Anaconda3) ,
数据库连接时,字符集用 utf8时,存储过程返回的中文列名可以正常显示, 但数据中有中文就乱码.
而字符集改用CP936时,存储过程返回的结果集中, 中文显示是正常了,但中文列名却消失了, 它不见了.
我试过用 cursor.execute(sql ) 亦是一样的结果

问题相关代码,请勿粘贴截图
import pymssql
import pandas as pd
conn = pymssql.connect(server=server,user=user,password=password,database=database,charset='utf8')
#sql='exec dbo.p_check_wip_paper'
sql="select '测试代码' as [中文列名],'test' as [英文列名] "
df = pd.read_sql(sql,conn)
print(df)
运行结果及报错内容

img

我的解答思路和尝试过的方法

把charset='utf8'改成 charset='CP936', 也不行.

我想要达到的结果

补充一下说明: 因为数据库是生产数据库, 字段都已经定好是 varchar 了, 不能够全部改为 nvarchar , 所以, 在寻求看还有没有不改数据库字段类型的前提下, 可以达到字段列和字段内容都能正常显示中文

  • 写回答

2条回答 默认 最新

  • 陈年椰子 2022-02-14 15:20
    关注

    直接用 sqlserver 查看表,是什么情况?
    表里的数据,是通过其他接口插入的?

    评论

报告相同问题?

问题事件

  • 修改了问题 2月14日
  • 修改了问题 2月14日
  • 修改了问题 2月14日
  • 创建了问题 2月14日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上