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 , 所以, 在寻求看还有没有不改数据库字段类型的前提下, 可以达到字段列和字段内容都能正常显示中文

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

直接查看当然是没有问题的. 是在生产数据库上