日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

R语言read.csv乱码问题UTF-8 BOM X.U.FEFF

發布時間:2023/12/31 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 R语言read.csv乱码问题UTF-8 BOM X.U.FEFF 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

若使用R語言調用data <- read.csv("dataset.csv")文件出現了亂碼,解決的方法簡單整理如下:

  • 查看R語言運行環境的區域(locale)設置
  • > Sys.getlocale(category = "LC_ALL") [1] "LC_COLLATE=Chinese (Simplified)_China.936;LC_CTYPE=Chinese (Simplified)_China.936;LC_MONETARY=Chinese (Simplified)_China.936;LC_NUMERIC=C;LC_TIME=Chinese (Simplified)_China.936"
  • 若區域設置的字符集LC_CTYPE為中文,一般可以斷定dataset.csv文件是UTF-8文件格式,此時可以加一個參數:
  • data <- read.csv("dataset.csv", fileEncoding = "UTF-8")

    若還是不能讀取數據集,或者使用fileEncoding = "UTF-8"時header出現了X.U.FEFF奇怪的字樣,說明UTF-8格式的文件頭帶了BOM(byte oreder mark, 字節順序標記),此時應該換成fileEncoding = "UTF-8-BOM":

    data <- read.csv("dataset.csv", fileEncoding = "UTF-8-BOM")

    注意:

  • 不要使用encoding = "UTF-8"的參數,實際上encoding的參數相當于分兩個步驟:
  • # 1. 讀入數據 data <- read.csv("dataset.csv") # 2. 對data中有所的字符串進行encoding轉碼,比如, # 帶中文的factor(或是character),實際上調用了:Encoding(levels(data[,1]) <- "UTF-8" # 對應列是factor 情形# 或Encoding(data[,1]) <- "UTF-8" # 對應列是character情形
  • 不要fileEncoding和encoding兩個參數同時使用
    原因如同注意1, 若是fileEncoding和encoding同時指定`UTF-8’, 相當于對字符串進行兩次轉碼。
  • 總結

    以上是生活随笔為你收集整理的R语言read.csv乱码问题UTF-8 BOM X.U.FEFF的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。