Problem with ISO-8859-1 feeds #62

Closed
Jcchemin opened this Issue May 7, 2013 · 3 comments

Comments

3 participants
@Jcchemin

Jcchemin commented May 7, 2013

Hi,

I tear my hair ... ^^ I have encoding problem with ISO-8869-1 feeds and feedparser@0.15.3

For exemple with :
http://fr.canoe.ca/rss/feed/nouvelles/aujourdhui.xml

The title "Blessures très sévères · Un automobiliste percute un tracteur"
becomes "Blessures tr�s s�v�res � Un automobiliste percute un tracteur"

I do simply feedparser.parseUrl(myUrl)
and .on('article') -> console.log(article.title)

I tried to play with encoding, iconv, etc. but without success
I can not find where the problem is, it's a bug ? or i forget something ?

@danmactough

This comment has been minimized.

Show comment Hide comment
@danmactough

danmactough May 7, 2013

Owner

As you discovered, we don't do any character set conversion. That's left up to you. It looks like iconv is working just fine, though.

var feedparser = require('feedparser'),
    request = require('request'),
    Iconv = require('iconv').Iconv;

var iconv = new Iconv('latin1', 'utf-8');

request('http://fr.canoe.ca/rss/feed/nouvelles/aujourdhui.xml')
  .pipe(iconv)
  .pipe(new feedparser())
  .on('article', function (article) {
    console.log(article.title);
  });

/*
LNH | Trophée Norris · P.K. Subban en nomination
Femmes retrouvées à Cleveland · Les suspects sont trois frères
Tombeur de «Mom» Boucher · «Godasse» se rapproche de sa libération
LNH · Lucic impressionné par la foule du Air Canada Centre
Ohio · Trois femmes disparues depuis plus de 10 ans sont retrouvées
Thetford Mines · Embardée mortelle sur la route 269
Embardée à Adstock · Un homme de 26 ans perd la vie
Triangle amoureux · Tentative de meurtre à Laval
Saint-Faustin-Lac-Carré · Dérapage d'un camion contenant des produits dangereux
Montréal · Incendie suspect dans une piquerie
Collision contre un tracteur · L'homme succombe à ses blessures
Autoroute 40 Est · Un semi-remorque dans le terre-plein central
Montréal · Agression armée par une femme
Autoroute 30 · Une file de camions sans fin
Montréal · Agression armée en pleine rue
Hockey · Les Kings n'abandonnent pas
Canadien · Desharnais promet de rebondir
Alouettes · Popp a pris ses précautions
Congrès | ACFAS · La face cachée du solaire
Travaux routiers · Bouchons en vue
Saisie · Laboratoire clandestin: drogue 40 fois plus forte que l'héroïne
Blessures très sévères · Un automobiliste percute un tracteur
Baseball · Otis Nixon accusé de possession de drogue
Baseball · Fin de match spectaculaire des Blue Jays
LNH · Derick Brassard s'illustre avec les Rangers
Ohio · Trois femmes disparues depuis plus de 10 ans sont retrouvées
Arrondissement de Rosemont-La Petite-Patrie  · Vignettes pour les abonnés de l'autopartage
Granby · Délit de fuite mortel: un homme accusé
LNH · David Krejci est dominant face aux Maple Leafs
Béton tombé d'un viaduc · Plus de peur que de mal
*/
Owner

danmactough commented May 7, 2013

As you discovered, we don't do any character set conversion. That's left up to you. It looks like iconv is working just fine, though.

var feedparser = require('feedparser'),
    request = require('request'),
    Iconv = require('iconv').Iconv;

var iconv = new Iconv('latin1', 'utf-8');

request('http://fr.canoe.ca/rss/feed/nouvelles/aujourdhui.xml')
  .pipe(iconv)
  .pipe(new feedparser())
  .on('article', function (article) {
    console.log(article.title);
  });

/*
LNH | Trophée Norris · P.K. Subban en nomination
Femmes retrouvées à Cleveland · Les suspects sont trois frères
Tombeur de «Mom» Boucher · «Godasse» se rapproche de sa libération
LNH · Lucic impressionné par la foule du Air Canada Centre
Ohio · Trois femmes disparues depuis plus de 10 ans sont retrouvées
Thetford Mines · Embardée mortelle sur la route 269
Embardée à Adstock · Un homme de 26 ans perd la vie
Triangle amoureux · Tentative de meurtre à Laval
Saint-Faustin-Lac-Carré · Dérapage d'un camion contenant des produits dangereux
Montréal · Incendie suspect dans une piquerie
Collision contre un tracteur · L'homme succombe à ses blessures
Autoroute 40 Est · Un semi-remorque dans le terre-plein central
Montréal · Agression armée par une femme
Autoroute 30 · Une file de camions sans fin
Montréal · Agression armée en pleine rue
Hockey · Les Kings n'abandonnent pas
Canadien · Desharnais promet de rebondir
Alouettes · Popp a pris ses précautions
Congrès | ACFAS · La face cachée du solaire
Travaux routiers · Bouchons en vue
Saisie · Laboratoire clandestin: drogue 40 fois plus forte que l'héroïne
Blessures très sévères · Un automobiliste percute un tracteur
Baseball · Otis Nixon accusé de possession de drogue
Baseball · Fin de match spectaculaire des Blue Jays
LNH · Derick Brassard s'illustre avec les Rangers
Ohio · Trois femmes disparues depuis plus de 10 ans sont retrouvées
Arrondissement de Rosemont-La Petite-Patrie  · Vignettes pour les abonnés de l'autopartage
Granby · Délit de fuite mortel: un homme accusé
LNH · David Krejci est dominant face aux Maple Leafs
Béton tombé d'un viaduc · Plus de peur que de mal
*/

@danmactough danmactough closed this May 7, 2013

@Anonyfox

This comment has been minimized.

Show comment Hide comment
@Anonyfox

Anonyfox May 13, 2013

Actually there is an easier way to auto-encode correctly:

  1. set Requests's option "encoding" to null, as result you'll get a buffer as body
  2. use https://github.com/runk/node-chardet to get the (mostly) correct encoding
  3. use https://github.com/ashtuchkin/iconv-lite to convert instead of pure iconv, since its a pure JS implementation and is faster & crossplatform.

Hope this helps! :)

Actually there is an easier way to auto-encode correctly:

  1. set Requests's option "encoding" to null, as result you'll get a buffer as body
  2. use https://github.com/runk/node-chardet to get the (mostly) correct encoding
  3. use https://github.com/ashtuchkin/iconv-lite to convert instead of pure iconv, since its a pure JS implementation and is faster & crossplatform.

Hope this helps! :)

@Jcchemin

This comment has been minimized.

Show comment Hide comment
@Jcchemin

Jcchemin May 13, 2013

Thank you for your help.
With the method of dan i resolved my problem with encoding. But as I work with several different encoding it was not easy.
I'll try this new technique should be more efficient.
👍

Thank you for your help.
With the method of dan i resolved my problem with encoding. But as I work with several different encoding it was not easy.
I'll try this new technique should be more efficient.
👍

@shahidmau shahidmau referenced this issue in alabeduarte/feedparser-promised Nov 23, 2017

Closed

Unicode issue with Chinese Language. #20

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment