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

kzm*_*yrk 4 r character utf-8 readr

尝试使用read_csv2()fromreadr包读取 csv 文件。

问题是read_csv2()无法正确识别字符,而 R 的默认值read.csv2成功识别。

例如:

原始值: KOZYATA?I

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

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

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

my_df <- read_csv2("my_path/my_file.csv")
Run Code Online (Sandbox Code Playgroud)

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

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

Error: `col_names` must be TRUE, FALSE or a character vector
Run Code Online (Sandbox Code Playgroud)

第三次尝试:由于上述错误消息而添加到第二次尝试中。

my_df <- read_csv2("my_path/my_file.csv", locale(encoding = "UTF-8"), col_names = TRUE, col_types = NULL)
Run Code Online (Sandbox Code Playgroud)

这个不会出错,但仍然不能正确识别字符。

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

kzm*_*yrk 6

@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)
Run Code Online (Sandbox Code Playgroud)