Zmiana kodowania za pomocą fs.createWriteStream

Zmiana kodowania za pomocą fs.createWriteStream
adams0
  • Rejestracja:prawie 8 lat
  • Ostatnio:4 dni
  • Postów:318
0

Cześć
Mam taki kod:

Kopiuj
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?

wojtekxtx
  • Rejestracja:ponad 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:25
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

edytowany 1x, ostatnio: wojtekxtx
LukeJL
to nie Rust XD w JS nawet jak coś ma const to może być zmienne w środku.
adams0
const tylko zabezpiecza przed zmianą referencji w wypadku obiektów. A ja nie próbuję jej zmienić.
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:3 minuty
  • Postów:8423
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?


adams0
  • Rejestracja:prawie 8 lat
  • Ostatnio:4 dni
  • Postów:318
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.

edytowany 1x, ostatnio: adams0
LukeJL
a Notepad++ wykrywa?
adams0
Notepad++ pokazuje utf8

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.