Lors de la lecture d'un fichier image, quel encodage dois-je utiliser? Je construis un serveur de base pour servir un fichier html avec une image et quand je lis le fichier image avec l'encodage de 'utf-8' et envoie les données au navigateur, le navigateur ne reçoit pas l'image. Cependant, si je mets l'encodage à une chaîne vide (c'est-à-dire {encoding: ''}), le navigateur reçoit l'image. Aussi, quand je regarde l'objet de flux de lecture, il dit que le codage par défaut est 'utf-8', ce qui me fait me demander pourquoi le réglage de l'encodage à 'utf-8' ne fonctionne pas?Comment savoir quel encodage utiliser lors de la lecture de fichiers?
Voici le morceau de code qui ne fonctionne pas:
let readStream = fs.createReadStream('./static/002.jpg', {flags: 'r', encoding: 'utf8'})
console.log('ReadStream: ', readStream)
res.setHeader('Content-Type', 'image/jpeg')
readStream.on('data', (chunk) => {
res.write(chunk)
})
readStream.on('error', (err) => {
console.log(err)
})
readStream.on('end',() => {
console.log('Image stream ended')
res.end()
})
readStream.on('close', function(){
console.log("Image Stream closed")
})
Et voici le morceau de code qui fonctionne:
let readStream = fs.createReadStream('./static/002.jpg', {flags: 'r', encoding: ''})
console.log('ReadStream: ', readStream)
res.setHeader('Content-Type', 'image/jpeg')
readStream.on('data', (chunk) => {
res.write(chunk)
})
readStream.on('error', (err) => {
console.log(err)
})
readStream.on('end',() => {
console.log('Image stream ended')
res.end()
})
readStream.on('close', function(){
console.log("Image Stream closed")
})