首页 > 解决方案 > R MYSQL-UTF 8 中的 DBwrite 表错误

问题描述

我有以下数据框

df<-data.frame(
  SLNO=c(1:5),
  sentence=c("Campaign Blast all channels Team may8t", "MDC Email Campaign 1 on  june 13", "Email camp Blastteam 09","Email camp Blastteam 09", "Email camp Blastteam 09thcamp"
)

我正在使用以下代码将数据框写入 SQL 表

    require(rmysql)
    require(rsqlite)
    name<-'username'
    password<-'userpass'
    hostname<-'1.2.3.4'
    port<-2222
    database<-'db'
    connection1<-dbConnect(dbDriver("MySQL"), user=username, 
      password=userpass, dbname= db, host=hostname, port=port)

我正在写入的表已经存在于数据库 db-table 中

       dbWriteTable(custdbconn, value = df,
         name ='table' , overwrite=F, append=T,
         field.types=list(SlNo= 'int()', Sentence= 'text'), row.names=F)

我收到一条错误消息

     Invalid utf8 character string: 'MDC Email Campaign 1 on

如果我单独插入行,这些行将写入 SQL 数据库。有没有办法在不出现错误的情况下编写整个表格。

标签: rutf-8rmysqlrsqlite

解决方案


解决方案非常优雅和简单

   Encoding(df$sentence)<-"UTF-8"

这已经解决了这个问题


推荐阅读