pymysql中文输入乱码与pymssql导入出错

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

我在做一个需要用到数据库的python项目,结果如果使用pymysql则会导致中文输入乱码,如果使用pymssql则无法导入方法。

问题相关代码,请勿粘贴截图

import pymssql
from pymssql import *

serverName = '127.0.0.1'
userName = 'root'
passWord = '123456'
dataBase = "dice"
conn = pymssql.connect(serverName, userName, passWord, dataBases)
#pymssql.connect(serverName, userName, passWord, "diceglita")
cur = conn.

在编译器中无法自动提示conn.后面的方法,同样如果手打的话会显示conn未定义

运行结果及报错内容

pymssql._pymssql.OperationalError: (18456, b"\xe7\x94\xa8\xe6\x88\xb7 'root' \xe7\x99\xbb\xe5\xbd\x95\xe5\xa4\xb1\xe8\xb4\xa5\xe3\x80\x82DB-Lib error message 20018, severity 14:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (127.0.0.1)\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (127.0.0.1)\n")

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

尝试过在pymysql中使用utf8编码与GBK,但是并不能解决乱码,看到网上说cp936可以,但是pymysql中没有找到cp936编码,看到网上说pymssql中有,但是并无法使用pymssql

我想要达到的结果

能够输入中文不乱码

可以调用下面的函数,连接sql server; 中文乱码问题 编码使用utf-8就可以, 你看下你数据库的字段是否为nvarchar, ntext?


```python
def exec_sql_server(sql):
    server = '10.10.80.124:1433'
    database = 'jz_doc_system'
    user = 'sa'
    password = 'atue@123'
    try:
        print(f'查询SQL:{sql}')
        db = pymssql.connect(server, user, password, database, charset='utf8')  # 连接到sql server数据库 charset='utf8'
        cur = db.cursor()  # 获取该数据库的游标
        cur.execute(sql)  # 执行语句

    except Exception as e:
        print(e)

    else:
        result = cur.fetchall()  # get result
        db.commit()  # 一定要commit,pymssql包默认是需要手动commit的,否则事务不生效
        db.close()  # 关闭数据库连接
        return result

```