pyodbc linux 乱码,python连接sql server乱码的解决方法
时间: 2023-07-25 14:38:27 浏览: 161
在 Linux 上使用 pyodbc 连接 SQL Server 时出现乱码的问题,可能是由于字符集不匹配引起的。解决方法如下:
1. 确认 SQL Server 数据库的字符集。可以使用以下命令查询:
```sql
SELECT name, collation_name FROM sys.databases;
```
找到要连接的数据库的字符集,比如 "Chinese_PRC_CI_AS"。
2. 在 pyodbc 连接字符串中指定字符集。例如:
```python
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=<server_name>;DATABASE=<database_name>;UID=<username>;PWD=<password>;CHARSET=UTF8')
```
这里的 CHARSET 参数指定为 UTF8,确保与 SQL Server 数据库的字符集相匹配。
3. 如果上述方法仍然不能解决问题,则可以在连接字符串中指定 Unicode 字符集。例如:
```python
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=<server_name>;DATABASE=<database_name>;UID=<username>;PWD=<password>;CHARSET=UTF8;UNICODE=True')
```
这里的 UNICODE 参数指定为 True,确保字符集以 Unicode 编码传输。
通过以上方法,应该能够解决 Linux 上使用 pyodbc 连接 SQL Server 时出现乱码的问题。
阅读全文