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

R语言处理含中文Excel文件时,由于编码的不一致,总会出现各种各样的问题。例如,使用xlsx包读取xlsx文件时,若内容中含有中文,就会出现乱码,甚至会报错。
例如使用这个表格:
在这里插入图片描述

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即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章