R中自动编码修复外来字符

时间:2017-09-10 23:58:35

标签: r encoding web-scraping character-encoding rvest

我有一个.csv数据框df,其中包含100,000多行和两列代表城市和国家/地区名称(经过网站许可后删除),其中数据的子集如下所示:< / p>

df <- read.csv("country_dat.csv", header = TRUE, sep = ",", stringsAsFactors = FALSE) 
df
  city                     country
1 Huntsville, Alabama      US
2 Nyn_shamn                Sweden
3 J__li                    Finland

该文件包含多个编码,因此我尝试了以下方法来修复后处理中的编码错误:

library(rvest)
guess_encoding(df$city[2])

     encoding language confidence
1  ISO-8859-1       en       0.30
2  ISO-8859-2       hu       0.20
3       UTF-8                0.15
4    UTF-16BE                0.10
5    UTF-16LE                0.10
6   Shift_JIS       ja       0.10
7     GB18030       zh       0.10
8      EUC-JP       ja       0.10
9      EUC-KR       ko       0.10
10       Big5       zh       0.10

repair_encoding(df$city[2])

Best guess: ISO-8859-1 (56% confident)
[1] "Nyn_shamn"

显然不起作用。是否可以自动执行修复编码过程而无需再次刮取网站?

编辑:所需的输出如下所示:

  city                     country           city_fixed
1 Huntsville, Alabama      US                Huntsville, Alabama
2 Nyn_shamn                Sweden            Nynäshamn
3 J__li                    Finland           Jääli

1 个答案:

答案 0 :(得分:0)

您能提供所需的输出吗? &#34;&#39; S-Hertogenbusch&#39;是一个有效的荷兰城市名称,所以我不明白为什么这是&#34;显然不起作用&#34;。

另一种选择可能是使用en2cutf8()来协调您的输入 - 但是,我不确定您是否会丢失任何信息。