2016-11-14 73 views
0

我試圖從R中的西班牙語源中提取文本,並運行到字符編碼問題,該問題未通過明確指定htmlParse中的編碼解決,因爲建議使用here字符編碼錯誤未通過指定編碼解決

library(XML) 
library(httr) 
url <- "http://www3.hcdn.gov.ar//folio-cgi-bin/om_isapi.dll?E1=&E11=&E12=&E13=&E14=&E15=&E16=&E17=&E18=&E2=&E3=&E5=ley&E6=&E7=&E9=&headingswithhits=on&infobase=proy.nfo&querytemplate=Consulta%20de%20Proyectos%20Parlamentarios&record={4EBB}&recordswithhits=on&softpage=Document42&submit=ejecutar%20" 
doc <- htmlParse(rawToChar(GET(url)$content),encoding="windows-1252") 
text <- xpathSApply(doc, "//text()[not(ancestor::script)][not(ancestor::style)][not(ancestor::noscript)][not(ancestor::form)]", xmlValue) 
text[77] 

第77個元素包含重音符i,它包含違規字符。第四行有一些額外的箍,我必須跳過來閱讀這個來源。該文件本身聲稱被編碼在「windows-1252」中。指定「latin1」和我嘗試過的其他編碼並不會更好。在我的實際應用程序中,我已經下載了許多這些文件,並使用readLines在本地讀取這些文件...並且我可以看到在將文件讀入R後錯誤不存在,因此問題必須在htmlParse。此外,只是接受編碼錯誤並對其進行事後校正似乎不是一種選擇,因爲如果我試圖將它們複製並粘貼回腳本,R甚至不會識別它正在吐出的字符。

回答

1

這裏是速戰速決,可能工作,你把文件後,成R

Encoding(text) <- "UTF-8" 

改變編碼爲「UTF-8」,使西班牙的文件很多更實用。