Inside a React Native method I'm fetching a xml encoded in ISO-8859-1.
As long as the fetching is completed I'm trying to convert it to UTF-8.
Here the code:
const iconv = require('iconv-lite');
fetch('http://www.band.uol.com.br/rss/colunista_64.xml', {
headers: {
"Content-type": "text/xml; charset=ISO-8859-1"
}
})
.then(res=>res.text()})
.then(text => {
const decodedText = iconv.decode(Buffer.from(text, 'latin1'), 'latin1')
, output = iconv.encode(decodedText, 'utf8')
console.log(output.toString())
})
The problem is: all especial characters of the body is being replaced by "¿½"
For the conversion, I'm using the package iconv-lite
What is the better workaround for this problem?
The best workaround is to use
res.arrayBuffer()
insteadres.text()
, as long the Buffer constructor acceptsArrayBuffer
The code: