Skip to content

Commit

Permalink
More robust encoding handling
Browse files Browse the repository at this point in the history
  • Loading branch information
terceiro committed Aug 27, 2013
1 parent cc2b2c8 commit 2b3efea
Show file tree
Hide file tree
Showing 7 changed files with 2,082 additions and 3 deletions.
15 changes: 12 additions & 3 deletions lib/feedparser/feedparser.rb
Expand Up @@ -23,10 +23,19 @@ def self.recode(str)
# to assume UTF-8
encoding = Encoding::UTF_8
end
if encoding != 'unknown-8bit'
# assume UFT-8 with invalid data and strip that invalid data out
str.force_encoding(encoding)
if encoding == 'unknown-8bit'
# find first substring with a valid encoding that is not us-ascii
length = 1 # has to start at 1, magic requires at least 2 bytes
while length < str.length && ['us-ascii', 'unknown-8bit'].include?(encoding)
encoding = Magic.guess_string_mime_encoding(str[0..length])
length = length + 1
end
# need to remove iso-8859-1 control characters
if encoding == 'iso-8859-1'
str = str.bytes.select { |c| c < 128 || c > 159 }.map(&:chr).join
end
end
str.force_encoding(encoding)
str = str.chars.select { |c| c.valid_encoding? }.join
str.encode('UTF-8')
end
Expand Down
757 changes: 757 additions & 0 deletions test/html_output/finep.output

Large diffs are not rendered by default.

335 changes: 335 additions & 0 deletions test/parser_output/finep.output
@@ -0,0 +1,335 @@
Type: rss
Encoding: ISO-8859-1
Title: FINEP
Link: http://www.finep.gov.br/rss/rss.asp
Description: Feed Notícias FINEP
Creator:

--------------------------------
Title: Glauco Arbix participa de inauguração do Centro de inovação da Cisco
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3372
Date: 2013-08-26 03:00:00 UTC
Creator:
Subject:
Content:
<p>FINEP propõe parceria com a multinacional para criação de fundos específicos de P&D</p>
--------------------------------
Title: Inova Petro divulga resultado final
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3377
Date: 2013-08-26 03:00:00 UTC
Creator:
Subject:
Content:
<p>Foram selecionadas 11 empresas</p>
--------------------------------
Title: Inova Petro: resultado final
Link: http://download.finep.gov.br/chamadas/ct_petro/resultados/ListadosPlanosdeNegociosAprovadosAposRecursos.pdf
Date: 2013-08-26 03:00:00 UTC
Creator:
Subject:
Content:
<p>Foram selecionadas 11 empresas</p>
--------------------------------
Title: Inova Energia: esclarecimentos
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3378
Date: 2013-08-26 03:00:00 UTC
Creator:
Subject:
Content:
<p>Prazo para envio de Planos de Negócios é 29/08. Tire aqui suas dúvidas.</p>
--------------------------------
Title: Aviso importante: limites para financiamentos reembolsáveis
Link: http://www.finep.gov.br/pagina.asppagprogramas_inovacred
Date: 2013-08-26 03:00:00 UTC
Creator:
Subject:
Content:
<p>Pedidos com valor até R$ 10 dez milhões devem ser encaminhados aos agentes credenciados no programa Inovacred. Caso o estado não possua agente, o pedido pode ser feito via programa Inova Brasil.</p>
--------------------------------
Title: Primeiro Instituto Senai de Inovação do Brasil será lançado em setembro
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3373
Date: 2013-08-26 03:00:00 UTC
Creator:
Subject:
Content:
<p>Evento ocorrerá durante o 1º Seminário Internacional de Inovação Industrial em Eletroquímica, nos dias 16 e 17/09</p>
--------------------------------
Title: Glauco Arbix fala sobre projetos de inovação
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3374
Date: 2013-08-26 03:00:00 UTC
Creator:
Subject:
Content:
<p>Palestra acontece no dia 27/8 no Encontro Previ de Governança Corporativa</p>
--------------------------------
Title: FINEP vai investir direto em empresas
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3371
Date: 2013-08-22 03:00:00 UTC
Creator:
Subject:
Content:
<p>Fundo de Investimento em Participações de R$ 200 milhões será lançado em breve</p>
--------------------------------
Title: Navipeças: prorrogação de prazo
Link: http://download.finep.gov.br/chamadas/ct_bio/documentos/Navipecasprorrogacaodeprazocronogramav3.pdf
Date: 2013-08-22 03:00:00 UTC
Creator:
Subject:
Content:
<p>As propostas podem ser enviadas até 29/08</p>
--------------------------------
Title: Inscrições no Prêmio Jovem Cientista acabam em 30 de agosto
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3369
Date: 2013-08-21 03:00:00 UTC
Creator:
Subject:
Content:
<p>A 27ª edição tem como tema "Água: desafios da sociedade"</p>
--------------------------------
Title: FINEP 30 Dias será anunciado no 5º Congresso Brasileiro de Inovação
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3368
Date: 2013-08-19 03:00:00 UTC
Creator:
Subject:
Content:
<p>Nova metodologia entra em vigor no dia 3/9</p>
--------------------------------
Title: Melhores empresas para se trabalhar no Rio também inovam
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3366
Date: 2013-08-19 03:00:00 UTC
Creator:
Subject:
Content:
<p>FINEP apoiou projetos de sete empresas de um total de 30 premiadas</p>
--------------------------------
Title: Programa Ibero-Americano de Inovação entrega prêmio do concurso para criação de logomarca
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3367
Date: 2013-08-19 03:00:00 UTC
Creator:
Subject:
Content:
<p>Vencedora é uruguaia</p>
--------------------------------
Title: FINEP e Embrapa têm R$ 20 milhões para infraestrutura de pesquisa
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3365
Date: 2013-08-16 03:00:00 UTC
Creator:
Subject:
Content:
<p>Foco é apoiar OEPAS - Organizações Estaduais de Pesquisa Agropecuária</p>
--------------------------------
Title: Carta Convite - OEPAS 01/2013
Link: http://download.finep.gov.br/chamadas/acoes_transversais/editais/CartaConviteOEPAS2013VersaoFinal.pdf
Date: 2013-08-15 03:00:00 UTC
Creator:
Subject:
Content:
<p>Envio de propostas: até 16/09/2013</p>
--------------------------------
Title: Tecnova lança primeiro edital
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3363
Date: 2013-08-14 03:00:00 UTC
Creator:
Subject:
Content:
<p>Santa Catarina é o primeiro estado contemplado, por meio da Fapesc</p>
--------------------------------
Title: Concurso de fotografia do CNPq vai premiar com R$ 30 mil
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3361
Date: 2013-08-14 03:00:00 UTC
Creator:
Subject:
Content:
<p>As inscrições vão até o dia 30/8</p>
--------------------------------
Title: Inovar Semente - Veja o FAQ
Link: http://download.finep.gov.br/chamadas/inova_petro/documentos/6aChamadaInovarSemente-FAQ.pdf
Date: 2013-08-14 03:00:00 UTC
Creator:
Subject:
Content:
<p>Perguntas Frequentes da 6ª chamada para Capitalização de Fundos de Capital Semente</p>
--------------------------------
Title: Dilma inaugura unidade de biotecnologia financiada pela FINEP
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3360
Date: 2013-08-13 03:00:00 UTC
Creator:
Subject:
Content:
<p>Fábrica do Cristália irá produzir medicamentos contra o câncer</p>
--------------------------------
Title: PNI/Parques Tecnológicos: FAQ nº 3
Link: http://download.finep.gov.br/chamadas/acoes_transversais/documentos/FAQ-Instrumento3.pdf
Date: 2013-08-13 03:00:00 UTC
Creator:
Subject:
Content:
<p>Veja nova lista de Perguntas Frequentes</p>
--------------------------------
Title: FINEP e FAPESP lançam nova chamada do PIPE/PAPPE Subvenção
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3359
Date: 2013-08-13 03:00:00 UTC
Creator:
Subject:
Content:
<p>Propostas podem ser enviadas até 27 de setembro</p>
--------------------------------
Title: Inova Aerodefesa: resultado seleção empresas líderes após recursos
Link: http://download.finep.gov.br/chamadas/inova_aerodefesa/documentos/RESULTADO_SELECAO_EMPRESAS_LIDERES_APOS_RECURSOS_INOVA_AERODEFESA.pdf
Date: 2013-08-12 03:00:00 UTC
Creator:
Subject:
Content:
<p>Próxima etapa: workshop de instrução e fomento a parcerias: 27/08/2013</p>
--------------------------------
Title: FINEP anuncia workshop e empresas habilitadas do Inova Aerodefesa
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3356
Date: 2013-08-12 03:00:00 UTC
Creator:
Subject:
Content:
<p>Evento acontece dia 27/8 em SP</p>
--------------------------------
Title: PNI/Parques Tecnológicos: prorrogação de prazos
Link: http://download.finep.gov.br/chamadas/acoes_transversais/documentos/ProrrogacaodePrazo.pdf
Date: 2013-08-12 03:00:00 UTC
Creator:
Subject:
Content:
<p>Veja novo cronograma. Data final para envio eletrônico da proposta agora é 30/08</p>
--------------------------------
Title: Começa julgamento do Prêmio FINEP
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3354
Date: 2013-08-12 03:00:00 UTC
Creator:
Subject:
Content:
<p>Pré-qualificação dos projetos termina dia 16/8</p>
--------------------------------
Title: FINEP apoia novidade nos ares
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3355
Date: 2013-08-12 03:00:00 UTC
Creator:
Subject:
Content:
<p>Aeronave brasileira desenvolvida pela Novaer Craft terá protótipo ainda este ano</p>
--------------------------------
Title: Inova Agro: edital alterado
Link: http://www.finep.gov.br/editais/vigentes.asp?codigoFonte=34
Date: 2013-08-09 03:00:00 UTC
Creator:
Subject:
Content:
<p>Há uma errata e retificação dos critérios Etapa 2: Seleção de Empresas Líderes</p>
--------------------------------
Title: Inova Saúde - Equipamentos Médicos 02/2013
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3350
Date: 2013-08-09 03:00:00 UTC
Creator:
Subject:
Content:
<p>No ar a lista de aprovados após recursos, link para plano de negócios e guia de preenchimento</p>
--------------------------------
Title: Inova Saúde - Biofármacos
Link: http://download.finep.gov.br/chamadas/ct_transpo/documentos/ModelodePlanodeNegocios_InovaSaudefarmacos.pdf
Date: 2013-08-09 03:00:00 UTC
Creator:
Subject:
Content:
<p>Veja o modelo do plano de negócios, a ser apresentado até 05 de setembro</p>
--------------------------------
Title: Workshop do Inova Saúde reúne setor farmacêutico em São Paulo
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3349
Date: 2013-08-09 03:00:00 UTC
Creator:
Subject:
Content:
<p>Demanda do edital chegou a R$ 3,3 bilhões</p>
--------------------------------
Title: TI MAIOR: resultado da avaliação de mérito
Link: http://download.finep.gov.br/chamadas/subvencao/documentos/resultado_preliminar_etapa02_merito.pdf
Date: 2013-08-06 03:00:00 UTC
Creator:
Subject:
Content:
<p>Propostas irão agora para a fase conclusiva</p>
--------------------------------
Title: Divulgado resultado preliminar do Inova Petro e anunciado segundo edital do Programa
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3346
Date: 2013-08-06 03:00:00 UTC
Creator:
Subject:
Content:
<p>Nova chamada será lançada em outubro</p>
--------------------------------
Title: Nanotecnologia: resultado preliminar da avaliação de mérito
Link: http://download.finep.gov.br/chamadas/subvencao/documentos/subvencaoeconomica-tabela-classificados.pdf
Date: 2013-08-06 03:00:00 UTC
Creator:
Subject:
Content:
<p>Resultado final está previsto para 10/09</p>
--------------------------------
Title: Parques Tecnológicos: novo FAQ disponível
Link: http://download.finep.gov.br/chamadas/acoes_transversais/documentos/Respostasasperguntasmodulo2.pdf
Date: 2013-08-05 03:00:00 UTC
Creator:
Subject:
Content:
<p>Veja nova lista de Perguntas Frequentes</p>
--------------------------------
Title: Inova Petro: resultado preliminar
Link: http://download.finep.gov.br/chamadas/inova_petro/resultados/inovapetrolistadosplanosdenegociosaprovados.pdf
Date: 2013-08-05 03:00:00 UTC
Creator:
Subject:
Content:
<p>Veja os planos de negócios aprovados</p>
--------------------------------
Title: FINEP é destaque na Revista Especial Inovação, do Valor Econômico
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3341
Date: 2013-08-02 03:00:00 UTC
Creator:
Subject:
Content:
<p>Agência é citada em diversas matérias</p>
--------------------------------
Title: FINEP 30 Dias é lançado em SP durante reunião da MEI
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3342
Date: 2013-08-02 03:00:00 UTC
Creator:
Subject:
Content:
<p>Iniciativa representa redução drástica no tempo de análise de projetos</p>
--------------------------------
Title: FINEP recebe demanda de R$ 43 bilhões para inovação
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3340
Date: 2013-08-01 03:00:00 UTC
Creator:
Subject:
Content:
<p>Resultado é somatório das cartas de manifestação de interesse de sete editais</p>
--------------------------------
Title: Clique FINEP tem perto de 10 mil visualizações
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3338
Date: 2013-08-01 03:00:00 UTC
Creator:
Subject:
Content:
<p>Ferramenta foi lançada em junho</p>
--------------------------------
Title: FINEP promove workshop do programa Inova Saúde
Link: http://www.finep.gov.br/imprensa/noticia.asp?cod_noticia=3339
Date: 2013-08-01 03:00:00 UTC
Creator:
Subject:
Content:
<p>Evento em SP tem foco na linha de Fármacos</p>
--------------------------------
Title: Equipamentos médicos: FAP disponível
Link: http://www2.finep.gov.br/forum/controller?COMMAND=command.displayLogin&TEMPLATE_DEST=template.pessoajuridica.login&MODULO=operacao&IDF=261
Date: 2013-07-30 03:00:00 UTC
Creator:
Subject:
Content:
<p>Acesse aqui o Formulário para Apresentação de Propostas</p>

0 comments on commit 2b3efea

Please sign in to comment.