2016-11-14 3 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. Кроме того, просто принятие ошибки кодирования и исправление ее ex post не представляется возможным, поскольку R даже не распознает символы, которые он выплевывает, если я попытаюсь скопировать и вставить их обратно в скрипт.

ответ

1

Вот быстрое решение, которое может работать после того, как вы принесете файл в R

Encoding(text) <- "UTF-8" 

Изменение кодировки для «UTF-8» делает испанские файлы гораздо более удобным.