我正在使用 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)。
如何解决此问题?谢谢!
答案 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)。希望这有帮助