如何使R的read_csv2()正确识别文本字符

时间:2016-12-03 09:15:39

标签: r utf-8 character readr

尝试使用readr包中的read_csv2()读取csv文件。

问题是read_csv2()在R的默认read.csv2成功执行时无法正确识别字符。

例如:

原始值:KOZYATAĞI

read_csv2()如何识别:KOZYATA<'d0'> I

我检查了帮助文件,并尝试了下面列出的编码;但是无法实现。

第一次尝试:结束了错误的字符

  

my_df< - read_csv2(“my_path / my_file.csv”)

第二次尝试:手动说明编码。

  

my_df< - read_csv2(“my_path / my_file.csv”,locale(encoding =“UTF-8”))

     

错误:col_names必须为TRUE,FALSE或字符向量

第3次尝试:因为上面的错误消息而增加了第2次尝试。

  

my_df< - read_csv2(“my_path / my_file.csv”,locale(encoding =“UTF-8”),col_names = TRUE,col_types = NULL)

这个没有给出错误但仍然无法正确识别字符。

怎么做?如果需要任何其他信息,请告诉我。提前谢谢。

2 个答案:

答案 0 :(得分:3)

@Amit,谢谢你的建议。

在RStudio上,我选择 File \ Save with Encoding ... 来查看一些可用的编码选项。

在编码列表顶部的弹出窗口中,它显示系统默认值(我的计算机为CP1254)。然后将其传递给编码参数,如下所示,它有效!

my_df< - read_csv2(“my_path / my_file.csv”,locale(encoding =“ CP1254 ”),col_names = TRUE,col_types = NULL)

答案 1 :(得分:0)

现在在Rstudio上,看起来像这样的选项,R Studio Version 1.2.1335 on Windows 10

然后,此代码有效:

read_csv("C:path/file.csv", locale(encoding = "ISO-8859-1"),col_names = TRUE,col_types = NULL)

西班牙特殊角色正确加载(重音符号和ñ)。