如何使用VBA使用ODBC(MySQL)插入unicode符号(如欧姆/度)

如何使用VBA使用ODBC(MySQL)插入unicode符号(如欧姆/度),mysql,vba,unicode,odbc,adodb,Mysql,Vba,Unicode,Odbc,Adodb,我的VBA代码段是: Set rsRecords = CreateObject("ADODB.Recordset") strQuery = Printf("INSERT INTO `parameters` (`name`) VALUES ('%s');", Cells(Row, 1).Text) MsgBox (strQuery) rsRecords.Open strQuery, oConn MsgBox正确显示符号(°),但My

我的VBA代码段是:

        Set rsRecords = CreateObject("ADODB.Recordset")
        strQuery = Printf("INSERT INTO `parameters` (`name`) VALUES ('%s');", Cells(Row, 1).Text)
        MsgBox (strQuery)
        rsRecords.Open strQuery, oConn
MsgBox正确显示符号(°),但MySQL Workbench显示插入了(?)。我可以用Workbench来替换?使用“”,所以我知道DB表没有问题

问题似乎在ADODB中。有没有关于如何修复的想法


Dan

欢迎来到SQL注入的世界。如果用户写入
x');删除数据库db_名称--?您是否看到关于Unicode/ANSI的帖子-“使用MySQL ODBC Unicode驱动程序而不是ANSI”列的
名称是什么类型的?它是unicode类型还是
varchar
?另外,使用参数化查询。对
Printf
函数非常好奇。如果它是那样的话,那么它是一个非常酷的东西,但对于任何涉及SQL字符串的东西来说都不是。
name
列是VarChar,我总是能够在其中存储“”,我将它切换到NVarChar,没有任何更改。我可以从Workbench将°存储在其中。打印函数生成一个字符串,其中包括°。我用MsgBox检查了它。欢迎来到SQL注入的世界。如果用户写入
x');删除数据库db_名称--?您是否看到关于Unicode/ANSI的帖子-“使用MySQL ODBC Unicode驱动程序而不是ANSI”列的
名称是什么类型的?它是unicode类型还是
varchar
?另外,使用参数化查询。对
Printf
函数非常好奇。如果它是那样的话,那么它是一个非常酷的东西,但对于任何涉及SQL字符串的东西来说都不是。
name
列是VarChar,我总是能够在其中存储“”,我将它切换到NVarChar,没有任何更改。我可以从Workbench将°存储在其中。打印函数生成一个字符串,其中包括°。我用MsgBox检查了它。