R htmlTreeParse()编码UTF-8

时间:2014-08-13 22:42:12

标签: xml r utf-8

我正在尝试通过以下代码获取链接列表

url.i<-"http://www.mijnwoordenboek.nl/duits/synoniemen/A/1.html"
doc<-htmlTreeParse(url.i,useInternal=TRUE,encoding="UTF-8")
xpathSApply(doc,"//a",xmlGetAttr,'href')[82]

输出:     [1]“http://www.mijnwoordenboek.nl/duits/synoniemen /abbeißen”

但输出中的问题是“abbeißen”,但它应该是“abbeißen”,我已经指定了编码。

以下版本中出现同样的问题

Windows,R 64 bit-3.1.0和XML_3.98-1.1

Windows,R 64位-3.1.1和XML_3.98-1.1

Windows,R 32位-3.1.0和XML_3.98-1.1

1 个答案:

答案 0 :(得分:0)

似乎遗憾的是xmlGetAttr并不支持xmlValue之类的编码。但您可以指定要与xmlGetAttr一起使用的转换器。这是一个将字符值标记为UTF-8

的函数
markUTF8 <- function(x) `Encoding<-`(x, "UTF-8")

然后您可以将其与

一起使用
xpathSApply(doc,"//a",xmlGetAttr,'href', converter=markUTF8)[82]
# [1] "http://www.mijnwoordenboek.nl/duits/synoniemen/abbeißen"