R 中的非 ASCII 字符问题

Issue with Non-ASCII Characters in R

我在 R 中加载具有各种 non-ASCII/double 字节字符的自由文本字段的数据。根据我用来加载数据的函数或数据存储的格式(.csv.xlsx),字符显示不同。

具体来说,如果我将 read.csv.csv 文件一起使用或将 read_excel.xlsx 文件一起使用,则字符显示如下:Orientaci�n m�s.

与此同时,如果我将 read_csv.csv 文件一起使用,它们将显示为:Orientaci�n m�s

是否有文件 format/data 加载组合来解决这个问题?还是有某种方法可以在加载后以任何一种格式解码数据?我已经探索了多种方法,包括在适用的情况下更改编码参数和 decoder 包,但我什么也做不了。

想法?

编辑:根据下面的评论,我尝试了以下方法:

readr::guess_encoding("file with issue.csv")
    # A tibble: 2 x 2
  encoding   confidence
  <chr>           <dbl>
1 UTF-8            1   
2 ISO-8859-1       0.52

readr::guess_encoding("file without issue.csv")
guess_encoding("Goal_Details.csv")
# A tibble: 2 x 2
  encoding     confidence
  <chr>             <dbl>
1 UTF-8              1   
2 windows-1252       0.51

iconv(x,"ISO-8859-1","windows-1252")

x 对应 string/field 问题,但仍然没有解决问题。

想法?

经进一步调查,答案是'��'已经被解码。在某些时候原始字符没有被解码,所以 windows 默认基本上是说“我不知道这是什么”,它对任何 non-ASCII 字符都是这样。

比如,到了这个点就没有区别á和¿了。这些类型的字符有可用的人行横道,但它们在这里不起作用,因为需要在语言级别进行替换,这是一个完全不同的问题。

从本质上讲,要么必须替换或删除“�”,运行 一种多种语言的拼写检查器。