【发布时间】:2020-04-07 09:08:43
【问题描述】:
下面是我的示例代码:
import pyodbc
conn = pyodbc.connect(driver = '{SQL Server}', \
server = 'localhost', \
uid = 'sa', \
pwd = '1234', \
autocommit = True, trusted_connection='yes', database = 'DB')
Objcursor = conn.cursor()
mystring1 = "MÜNRÜC"
mystring = mystring1.decode("utf-8",'replace')
sql = "INSERT INTO system (name) VALUES ('%s')" %(mystring)
Objcursor.execute(sql)
conn.Commit()
当我运行此代码 sn-p 时,我得到的输出为“M?N?R?C”,因为我在编码时使用了替换。 如果我不使用替换,它会给出一个错误,不会对字符串进行编码。 有人可以帮助如何在数据库中使用 pyodbc 插入 unicode 字符串而不替换字符/数据丢失。
【问题讨论】:
-
如果您不使用“替换”选项,您能否提供完整的回溯(错误)?
-
感谢您的快速响应,它给出了一个错误:'utf8' codec can't decode byte 0xdc in position 1: invalid continuation byte