我试图使用名为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。
如果源代码文件保存为UTF-8,则Python源文件的第一行应包含以下内容:
# -*- coding: utf-8 -*-
如果不是UTF-8,请添加第一行并将文件重新保存为UTF-8。重新打开并确保仍然正确显示db_name。
对于参数charset
,值为UTF-8
而不是utf8
。我不确定案件是否重要但文件是大写的。
另一种选择是指定编码:self.db_name.encode('UTF-8')