江南才子 发表于 2021-6-30 09:43:12

R语言sqldf包读取数据乱码如何解决

  字段名称乱码解决办法
  我用SQL语句选择一列数据,最后查看该列数据的时候,发现数据乱码了。解决办法如下:
data1 <- sqldf("select * from data where 疾病名称='脑出血和脑梗死'")
str(data1)
colnames(data1) <- iconv(colnames(data1),from="UTF-8",to="GBK")
head(data1)
  处理前

处理后

  transform(Data,变量1 = iconv(变量1,‘UTF-8’,‘GBK’))
数据库数据读取乱码
  方法一:同理,将数据库读取的数据对象进行赋值,再使用iconv函数就可以转换成正常的数据格式。
data<- iconv(data1,from="UTF-8",to="GBK")
head(data)
  方法二:连接数据库时设置编码
myconn <- odbcConnect(dsn=dsn, uid=uid, pwd=pwd, DBMSencoding="UTF8") ##连接数据库时设置编码
  方法三:先设置查询格式为Gbk,然后再进行数据读取
dbSendQuery(conn,'SET NAMES gbk')   ###先设置查询格式为Gbk,然后再进行数据读取
数据读取乱码
  方法一:读取时,解决乱码问题
data <- read.csv("zdata.csv", encoding="UTF-8")
  方法二:读取后转换乱码
data <- read.csv("zdata.csv")
Encoding(data) <-"UTF-8" ##转换成UTF-8
案例应用参考https://blog.csdn.net/tandelin/article/details/100580996

  
页: [1]
查看完整版本: R语言sqldf包读取数据乱码如何解决