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

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