R语言read.csv乱码问题UTF-8 BOM X.U.FEFF_r语言读取csv文件时横杠符号变成乱码-程序员宅基地

技术标签: R  r语言  csv  乱码  

若使用R语言调用data <- read.csv("dataset.csv")文件出现了乱码,解决的方法简单整理如下:

  1. 查看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"
  1. 若区域设置的字符集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")	

注意:

  1. 不要使用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情形
  1. 不要fileEncodingencoding两个参数同时使用
    原因如同注意1, 若是fileEncoding和encoding同时指定`UTF-8’, 相当于对字符串进行两次转码。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ofoliao/article/details/106431217

智能推荐

Labview队列使用方法----一文读懂队列底层原理及用法-程序员宅基地

文章浏览阅读2.3k次,点赞35次,收藏41次。题主非常详细的介绍了队列的原理及使用方法,帮助读者在原理上深刻理解队列的底层逻辑,并介绍了队列使用时的注意事项。后续将更新更多相关文章记得点赞加关注,谢谢~_labview队列

教你用Python爬取哔哩哔哩全站视频信息_b站访问权限不足爬虫-程序员宅基地

文章浏览阅读1.8k次。哔哩哔哩全站视频信息爬虫(可能会漏爬)B 站感觉最近几年发展得太快了,不由得想知道有多少视频,翻阅了一大半网络找了很多爬虫感觉都不是特别的复合自己的胃口(挑食~),于是自己写一个(才学习爬虫没多久写得垃圾代码大佬别喷我啊….)很多人学习python,不知道从何学起。很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。很多已经做案例的人,却不知道如何去学习更加高深的知识。那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!??¤QQ群_b站访问权限不足爬虫

(新版)SJTU-OJ-1003. 在麦当劳配数据-程序员宅基地

文章浏览阅读431次,点赞4次,收藏2次。题目描述注意:本题可以使用的头文件仅限于cstdioiostreamcstring梦回高三,小艾想起了几个月前背诵高考古诗文篇目的时光……已经是晚上了。第二天有小测,可是小艾还有篇古诗文没有背。这篇古诗文都有一个对应的瞌睡值,也就是说,选择背诵篇目会让小艾的瞌睡程度增加​。小艾目前的瞌睡程度已经是,而当小艾的瞌睡程度时,小艾会直接睡到明早,那可就没有更多的时间背了!注意,因为背了一半的文章也是没背出来的文章,所以恰好让小艾瞌睡程度的那篇也视作没背的。好在小测考到每个篇目的概率是一..._在麦当劳配数据

ubuntu16安装colmap的问题及解决方案_cudasetupargument 未定义的引用-程序员宅基地

文章浏览阅读2.3k次,点赞14次,收藏28次。最近想入门一下三维重建,看了一些三维重建的论文,还是想从SFM入手。先了解一下SFM里面经典的colmap(论文:[Structure-from-Motion Revisited](https://demuc.de/papers/schoenberger2016sfm.pdf)),看论文难以深入理解,所以打算看看源码,也是为了完成一个小小礼物。_cudasetupargument 未定义的引用

windows使用libvlc进行网络串流遇到的一些问题及解决方法_libvlc网络-程序员宅基地

文章浏览阅读857次。windows使用libvlc进行网络串流遇到的一些问题及解决方法_libvlc网络

ffmpeg--libswscale(图像缩放、颜色空间和像素格式转换操作)-程序员宅基地

文章浏览阅读1k次。主要函数:(1) sws_getContext():使用参数初始化SwsContext结构体。 可以用另一个接口函数sws_getCachedContext()取代。(2) sws_scale():转换一帧图像。(3) sws_freeContext():释放SwsContext结构体。初始化方式2种:①sws_getContext②sws_al..._libswscale

随便推点

JAVA_Quartz框架初探_java quartz框架-程序员宅基地

文章浏览阅读110次。JAVA Quartz框架一种定时器,相当于加强版本的java.unti.Timer。支持集群。在使用这个框架之前需要先链接几个概念:** 触发器 Trigger**: 什么时候工作* Trigger 就是触发器的意思,用来指定什么时间开始触发,触发多少次,每隔多久触发一次。SimpleTrigger 可以方便的实现一系列的触发机制。* Cron 是Linux下的一个定时器,功能很强大..._java quartz框架

CyclicBarrier和CountDownLatch的区别_countdownlatch是一次性的,cyclicbarrier可以重用。-程序员宅基地

文章浏览阅读90次。CountDownLatch减计数,CyclicBarrier加计数。 CountDownLatch是一次性的,CyclicBarrier可以重用。 CountDownLatch强调一个线程或者多个线程等待其他线程执行完毕后执行、CyclicBarrier强调的是多个线程相互等待执行完毕..._countdownlatch是一次性的,cyclicbarrier可以重用。

coco2017数据集百度网盘链接_coco百度网盘-程序员宅基地

文章浏览阅读8.1k次,点赞28次,收藏22次。coco2017数据集百度网盘链接链接:https://pan.baidu.com/s/1NTdU1-h2b5r2Hwc9DiwPig提取码:fwou_coco百度网盘

IDEA配置tomcat时出现的问题及解决(HTTP状态404-未找到)_运行ideahttp状态 404 - 未找到-程序员宅基地

文章浏览阅读2.1w次,点赞8次,收藏75次。IDEA配置tomcat出现的问题及解决问题1:没有新建环境变量解决:在系统环境变量中添加变量CATALINA_BASE和CATALINA_BASE,两个变量的值都是tomcat的安装路径(如下图所示)问题2:tomcat设置depolyment有误解决:添加的Artifact是“项目名:war_exploded”而不是“项目名:war”。特别注意的是:Application context中要改成“/”(如下图所示)一开始的样子:成功后:..._运行ideahttp状态 404 - 未找到

J2EE快速开发平台-程序员宅基地

文章浏览阅读48次。2019独角兽企业重金招聘Python工程师标准>>> ..._j2ee开放平台

推荐文章

热门文章

相关标签