Zmiana kodowania za pomocą fs.createWriteStream

0

Cześć
Mam taki kod:

import * as fs from 'fs';

const file = 'C:/Users/Adam/test.txt'
const file_copy = 'C:/Users/Adam/test_copy.txt'
const readable = fs.createReadStream(file, { highWaterMark: 128*1024, encoding:'utf8'});
const writable = fs.createWriteStream(file_copy, {highWaterMark: 128*1024, encoding: 'ascii'})

readable.pipe(writable);

Otwieram nowo powstały plik (test_copy) i sprawdzam kodowanie w VS Code.
Jest utf8.
Dla czego nie zmieniło kodowania?

0

Bo utworzyłeś strumienie, ale żadnej operacji na plikach nie wykonujesz? Bo jak ma wykonać skoro zdefiniowałeś readable oraz writable jako stałe? Wartości stałych (const) są, jak sama nazwa mówi, niezmienne.

Zamień const na let

1
adams0 napisał(a):

Cześć
Otwieram nowo powstały plik (test_copy) i sprawdzam kodowanie w VS Code.
Jest utf8.
Dla czego nie zmieniło kodowania?

U mnie wygląda na to, że działa (tj. konwertuje z polskich liter i emoji i dostaję krzaczki w tych miejscach, więc chyba przekonwertowało dobrze)... ale VSCode i tak pokazuje UTF8. Może to kwestia VSCode, że nie rozpoznaje?

0

Masz rację. Faktycznie gdy podmieniłem na polskie znaki to wyskoczyły dziwne znaczki a gdy dałem docelowe kodowanie na UTF8 to wszystko było dobrze.
Więc zmiana nastąpiła.
Trochę dziwne że ani notatnik ani VSCode nie zauważyły innego kodowania.
Jakbym się znał na tych standardach to bym przeanalizował bit po bicie i powiedział co jest nie tak, ale niestety nie jestem po informatyce xD.

1 użytkowników online, w tym zalogowanych: 0, gości: 1