与pyodbc连接到日语SQL Server 2008 R2的乱码文本

时间:2017-06-22 04:15:12

标签: python sql-server sql-server-2008-r2 pyodbc

问题

我正在尝试通过pyodbc连接到MS SQL Server 2008 R2数据库,但所有错误(无论错误如何)似乎都会返回为乱码文本。

  • 数据库用户语言设置为日语
  • 当DB用户语言设置为英语时,输出不会出现乱码。

示例

from django.db import connections
import pyodbc
con = connections['default']
con.cursor().execute('select getdate() as [abc] ', []).description

Traceback (most recent call last):
  File "/home/ubuntu/mypage/lib/python3.5/site-packages/Django-1.11-py3.5.egg/django/db/backends/base/base.py", line 213, in ensure_connection
    self.connect()
  File "/home/ubuntu/mypage/lib/python3.5/site-packages/Django-1.11-py3.5.egg/django/db/backends/base/base.py", line 189, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/home/ubuntu/mypage/lib/python3.5/site-packages/django_pyodbc_azure-1.11.0.0-py3.5.egg/sql_server/pyodbc/base.py", line 309, in get_new_connection
    timeout=timeout)
pyodbc.ProgrammingError: ('42000', '[42000] [unixODBC][Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Sn����g�BU�_������ "some_database" ��Q~[�\x02����k1WW~W_\x02 (4060) (SQLDriverConnect)')

问题

我可能需要处理语言为日语的数据库的任何特定设置吗?

备注

我感觉它正在返回某种二进制格式,或者pyodbc期望使用Latin-1或UTF16LE但是获得Shift-JIS或MS SQL Server用于数据库设置为日语的任何编解码器。

无论是使用django还是只是pyodbc的最新版本,都会出现完全相同的乱码文本。尝试过使用SQL Server驱动程序的verison 11和version 13。

我花了几个小时搜索文档,但无济于事。 任何帮助都非常赞赏!

0 个答案:

没有答案