问题 处理特殊字符例如R中的重音


我正在将一些名称的网页抓取到数据帧中

对于诸如“TomášRosický,我得到一个结果”这样的名字“TomášRosický”

我试过了

Encoding("Tomáš Rosický") #  with latin1 response

但不知道从那里去哪里获得带有重音符号的原始名称。玩了iconv没有成功

我会满意(甚至可能更喜欢)“Tomas Rosicky”的输出


10551
2018-03-01 05:52


起源

你是怎么读data.frame的?通常您可以提供编码参数,例如 fileEncoding 至 read.table。正如@Hong Ooi回答的那样,UTF-8似乎是你需要的编码。 - Tommy


答案:


您已阅读以UTF-8编码的页面。如果 x 是你的名字栏,使用 Encoding(x) <- "UTF-8"


8
2018-03-01 06:28





要正确读取文件,请使用扫描功能:

namb <- scan(file='g:/testcodering.txt', fileEncoding='UTF-8',
what=character(), sep='\n', allowEscapes=T)
cat(namb)

这也有效:

namc <- readLines(con <- file('g:/testcodering.txt', "r",
encoding='UTF-8')); close(con)
cat(namc)

这将使用正确的重音读取文件


3
2018-03-01 11:08



这对我有用! - MysteryGuy


一种正确导出重音的方法:

enc2utf8(as(dataframe$columnname, "character"))

2
2017-11-20 15:40





你应该用这个:

df$colname <- iconv(df$colname, from="UTF-8", to="LATIN1")

2
2017-07-13 17:25



你也能加一些解释吗? - d4Rk