获取"无法运行语句:字符串值不正确:"尝试通过dbExecute()将中文插入MySQL时出错

时间:2016-12-08 07:54:19

标签: mysql r

我正在使用 R (IDE:RStudio)通过 DBI.dbExecute 将一些数据插回 MySQL 。 SQL如下: " INSERT INTO t_tmp(AnalysisDate,Dimension,Indicator,IndicatorType,Value)VALUES(' 2016-01-17','维度1','指标1','指标类型',101)ON DUPLICATE KEY UPDATE值= 101; "

其中"维度","指标","指标类型"是中文

运行DBI.dbExecute时,收到错误消息: " .local(conn,statement,...)出错:   无法运行语句:字符串值不正确:' \ xB6 \ xC81'对于列'维度'"

我正在尝试将SQL粘贴到mySQL CLI,并且运行得很好(MySQL编码设置为UTF-8)。

如何解决此问题?谢谢!

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。问题仍然是编码。我的MySQL的编码是" UTF-8",因此在构建SQL之后,将其转换为" UTF-8"使用iconv(...),然后将其传递给dbSendQuery或dbExecute函数。那么代码就像:statement =" [你的sql这里有/没有像中文这样的Unicode字符]&#34 ;; statement = iconv(x = statement,to =" UTF-8"); dbSendQuery(conn,statement)。希望这有帮助