无法连接到具有unicode名称的数据库

问题描述 投票:1回答:1

我试图使用名为test_यूनिकोड_डेटाबेस_123的python中的pymssql模块连接到我的一个数据库。但我在连接时遇到错误:

'ascii'编解码器无法对位置4-10中的字符进行编码:序数不在范围内(128)

以下是我的代码:

db_name = u'test_यूनिकोड_डेटाबेस_123'

pymssql.connect(self.server, self.user, self.password, self.db_name, charset='utf8')

我尝试做db_name.encode('utf8'),但没有运气。然后我把charset ='utf8'选项包含在pymssql连接语句中仍然没有任何运气联系。有人可以帮帮我吗?

Python版本是2.7和SQL Server 2016。

python sql-server python-2.7 python-unicode pymssql
1个回答
0
投票

如果源代码文件保存为UTF-8,则Python源文件的第一行应包含以下内容:

# -*- coding: utf-8 -*-

如果不是UTF-8,请添加第一行并将文件重新保存为UTF-8。重新打开并确保仍然正确显示db_name。

对于参数charset,值为UTF-8而不是utf8。我不确定案件是否重要但文件是大写的。

另一种选择是指定编码:self.db_name.encode('UTF-8')

© www.soinside.com 2019 - 2024. All rights reserved.