MrBinWin MrBinWin - 1 month ago 11
Javascript Question

Convert iso-8859-1 to utf-8 javascript

I try to parse a "iso-8859-1" page and save to my DB with utf-8,
this is my code:

var buffer = iconv.encode(data, "iso-8859-1");
data = iconv.decode(buffer, 'utf8');


It doesn't work. All symbols like å or ä convert to �

How can I save these symbols?

Answer

You need a third-party library for that task. You are using iconv-lite so you need to follow these steps:

  1. Open input file in binary mode, so JavaScript doesn't assume UTF-8 nor try to convert to its internal encoding:

    var fs = require("fs");
    var input = fs.readFileSync(inputFilePath, {encoding: "binary"});
    
  2. Convert from ISO-8859-1 to Buffer:

    var iconv = require('iconv-lite');
    var output = iconv.decode(input, "ISO-8859-1");
    
  3. Save Buffer to output file:

    fs.writeFileSync(outputFilePath, output);
    

If unsure of encoding names, you can test whether a given encoding is supported with encodingExists():

> iconv.encodingExists("ISO-8859-1");
true
Comments