我希望 htmlParse 能够很好地处理希伯来语,但它不断地扰乱我输入的页面中的希伯来语文本。
例如:
# why can't I parse the Hebrew correctly?
library(RCurl)
library(XML)
u = "http://humus101.com/?p=2737"
a = getURL(u)
a # Here - the hebrew is fine.
a2 <- htmlParse(a)
a2 # Here it is a mess...
这些似乎都不能解决这个问题:
htmlParse(a, encoding = "utf-8")
htmlParse(a, encoding = "iso8859-8")
这是我的区域设置:
> Sys.getlocale()
[1] "LC_COLLATE=Hebrew_Israel.1255;LC_CTYPE=Hebrew_Israel.1255;LC_MONETARY=Hebrew_Israel.1255;LC_NUMERIC=C;LC_TIME=Hebrew_Israel.1255"
>
有什么建议么?
Specify UTF-8
调用中的编码getURL
and htmlParse
.
a <- getURL(u, .encoding = "UTF-8")
htmlParse(a, encoding = "UTF-8")
这些区域设置问题总是很难弄清楚。当我打字时cat(a)
(指定后UTF-8
编码在getURL
)我看到he.wrodpress.org
页面声称是 UTF-8:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
,但希伯来语位是 UTF-16。也就是说,它们看起来像<U+05D3><U+05E6><U+05DE><U+05D1><U+05E8>
。因此,这可能是由该网页的混合编码引起的问题。
比较几种编码,唯一在我的机器上不会产生乱码的编码是 UTF-8。
(trees <- lapply(c("UTF-8", "UTF-16", "latin1"), function(enc)
{
a <- getURL(u, .opts = proxy_opts, .encoding = enc)
htmlParse(a, encoding = enc)
}))
如果绝望了,就过去iconvlist()
应用上面的代码,看看是否有任何可能的条件适合您。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)