【发布时间】:2016-01-31 23:12:34
【问题描述】:
让我先说这个问题,我知道这个主题在许多帖子中都从不同的角度来解决。但是,我已经为此花费了数小时和数小时,但仍然无法使其正常工作,因此请寻求帮助。
我在 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。
我做错了什么?
【问题讨论】:
标签: mysql vba excel character-encoding