R编码UTF-8:U+0080-U+009F

R encoding UTF-8: U+0080-U+009F

我正在努力解决一些编码问题。我有许多文本文件包含以下格式的行:

https://dl.dropboxusercontent.com/u/94114397/example.txt

根据 Notepad++,这些都是用 UTF-8 编码的,大多数非 ASCII 字符都可以正确显示,正如您在第 1 行和第 2 行中看到的那样。但是,我遇到了一些似乎错误的字符问题解释(?)。在我的示例文件中,这是单词 "Lakuic" 中第 3 行的情况,其中 "u" 和 "i" 之间应该有一个“š”。这两个字母之间实际上有一个字符,可以通过将单词复制粘贴到 google chrome 地址栏中看到。

现在当我读取R中的数据时,它显示"Laku< U+009A>ic"。我该如何解决?

这对我有用:

file1   <- "https://dl.dropboxusercontent.com/u/94114397/example.txt"
result <- read.table(file1, header=F, sep="\t", quote="\"",encoding="windows-1252")

尝试从 UTF-8 转换为 latin1:

    df <- read.table("http://dl.dropboxusercontent.com/u/94114397/example.txt", sep = "\t", row.names = 1, stringsAsFactors = FALSE, encoding="UTF-8")
    iconv(df[, 1], from = "UTF-8", to = "latin1")
    # [1] "Trichocentrum<->longifolium<-><->(Lindl.) R.Jiménez, Acta Bot. Mex. 97: 54 (2011)." 
    # [2] "Salvia<->× hegelmaieri<->nothosubsp. accidentalis<->(Sánchez-Gómez & R.Morales)."   
    # [3] "Edraianthus<->tarae<-><->Lakušic, Bilten Drustva Ekologa BiH, Ser. A 4: 108 (1987)."

我的sessioInfo():

# Platform: x86_64-w64-mingw32/x64 (64-bit)
# Running under: Windows 7 x64 (build 7601) Service Pack 1
# 
# locale:
#   [1] LC_COLLATE=German_Germany.1252  LC_CTYPE=German_Germany.1252    LC_MONETARY=German_Germany.1252 LC_NUMERIC=C                    LC_TIME=German_Germany.1252