我是用SqlServer编译器SSMS查询的
时间: 2023-11-27 18:29:28 浏览: 44
如果你是在 SSMS 中查询 SQL Server 数据库时出现了中文乱码,可以尝试修改 SSMS 的默认编码。具体操作如下:
1. 打开 SSMS,进入菜单栏的“工具”-“选项”。
2. 在弹出的“选项”窗口中,选择“环境”-“国际设置”。
3. 将“默认编码”设置为“UTF-8”或“65001”。
4. 点击“确定”按钮保存设置,关闭窗口。
5. 重新连接数据库,查询数据,查看是否能够正常显示中文。
如果修改 SSMS 的默认编码无法解决问题,你可以尝试在查询数据时,使用 `CAST` 函数将查询结果中的中文转换为 UTF-8 编码,例如:
```
SELECT CAST(your_column AS VARBINARY(MAX)) FROM your_table
```
这样可以将查询结果中的中文转换为二进制数据,再使用 Python 中的 `decode()` 方法进行解码,例如:
```
import pyodbc
import json
# 建立数据库连接
cnxn = pyodbc.connect("DRIVER={SQL Server};SERVER=your_server;DATABASE=your_database;UID=your_username;PWD=your_password")
# 查询数据
cursor = cnxn.cursor()
query = "SELECT CAST(your_column AS VARBINARY(MAX)) FROM your_table"
cursor.execute(query)
# 将查询结果转换为 JSON 格式
result = []
for row in cursor:
row_dict = {}
row_dict["your_column"] = row[0].decode('utf-8')
result.append(row_dict)
json_data = json.dumps(result, ensure_ascii=False)
# 关闭数据库连接
cursor.close()
cnxn.close()
# 输出 JSON 数据
print(json_data)
```
这里的 `your_column` 是查询结果中的中文字段名。将其转换为二进制数据后,使用 `decode()` 方法将其解码为 UTF-8 编码,再将结果转换为 JSON 格式,就可以正常显示中文了。