0
点赞
收藏
分享

微信扫一扫

R语言xlsx包读取含中文Excel文件时出现乱码或“多字节字符串6有错”的解决方案


R语言处理含中文Excel文件时,由于编码的不一致,总会出现各种各样的问题。例如,使用xlsx包读取xlsx文件时,若内容中含有中文,就会出现乱码,甚至会报错。

例如使用这个表格:

R语言xlsx包读取含中文Excel文件时出现乱码或“多字节字符串6有错”的解决方案_字符串

data1 <- read.xlsx("人员信息.xlsx",sheetName="Sheet1",header=T)  #转换为UTF-8编码

输出结果:

> data1
濮撳悕 鎬у埆 AGE 鑱屼綅
1 灏忔槑 鐢<b7> 21 缁忕悊
2 鑰佺帇 鐢<b7> 22 鍓粡鐞<86>
3 寮犱笁 濂<b3> 23 鎶€鏈憳
4 鏉庡洓 濂<b3> 24 椤鹃棶
5 Tom M 25 Professor
6 Jack M 26 Assistant
7 Amy Bat F 27 Clerk

有些数据甚至会直接报错。

Error in make.names(vnames, unique = TRUE) : 多字节字符串6有错

那么应该如何解决呢?
对于这种问题,只需要在读入数据时,指定编码属性encoding=‘UTF-8’。

data1 <- read.xlsx("人员信息.xlsx",sheetName="Sheet1",header=T, encoding='UTF-8')  #转换为UTF-8编码

这样就可以读取成功了。

> data1
姓名 性别 AGE 职位
1 小明 男 21 经理
2 老王 男 22 副经理
3 张三 女 23 技术员
4 李四 女 24 顾问
5 Tom M 25 Professor
6 Jack M 26 Assistant
7 Amy Bat F 27 Clerk

这样就解决了乱码的问题。

此外,对于如果读取csv文件出现乱码,但文件本身没有问题的情况,可以使用Notepad++软件打开,点击编码-转为ANSI编码后保存。再次使用R读取csv即可。

R语言xlsx包读取含中文Excel文件时出现乱码或“多字节字符串6有错”的解决方案_字符串_02


举报

相关推荐

0 条评论