让我在这个问题的序言中说,我知道这个问题在许多帖子中都是从不同的角度来处理的。然而,我已经花了好几个小时在这个问题上,但仍然不能让它工作,所以我寻求帮助。
我在Excel表格中的单元格中有一些汉字。我使用VBA将这些单元格的内容导出到mysql表中。在mysql命令行中,我能够成功地将汉字插入表中(我使用的是utf8mb4字符集)。
我还在VBA连接字符串中设置了charset=utf8mb4。
但是,我不能让VBA在查询字符串中包含中文字符,如下所示:
SQLStr = "INSERT INTO " & VBA.Trim(databaseName) & ".translationTable" & " VALUES ('" & _
timestamp & "','" & _
Replace(Worksheets("translationTable").Range("IORange").Cells(Counter, 2), Chr(10), "") & "','" & _
Replace(Worksheets("translationTable").Range("IORange").Cells(Counter, 3), Chr(10), "") & "','" & _
Replace(Worksheets("translationTable").Range("IORange").Cells(Counter, 4), Chr(10), "") & "','" & _
Replace(Worksheets("translationTable").Range("IORange").Cells(Counter, 4), Chr(10), "") & "')"
rs.Open SQLStr, oConn我知道VBA编辑器在任何情况下都不会显示汉字。但是,从VBA插入的汉字显示为?也在数据库里。
在执行INSERT语句之前,我正在做的事情似乎是将汉字转换为ASCII。
我做错了什么?
发布于 2016-01-31 23:51:03
造成多个问号的常见原因:
SET NAMES latin1生效(默认,但错误)CHARACTER SET latin1 (默认值,但错误)如果这些提示还不够,那么就向我们展示表中的内容,使用如下
SELECT col, HEX(col) FROM tbl...中文不能被“转换为ascii”。
增编
尝试将DNS的“连接选项”--“初始语句”设置为“设置名称utf8mb4”。-- MySQL ODBC 3.51 Driver UTF-8 encoding
https://stackoverflow.com/questions/35120706
复制相似问题