nodejs / nodejs/node

fs.globSync returns incorrect results with non-UTF8 encoded file names.

Offen
#59,202 3 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

confirmed-bug fs
Vorherrschende Sprache
JavaScript
Sterne
122k
Forks
37.3k
Ø Merge
4 T. 2 Std.
Gemergte PRs (30 T.)
283

Beschreibung

For example... on Linux, where file names are just byte sequences...

const { writeFileSync, existsSync, globSync } = require('node:fs');

const path = Buffer.from([0xe9]);
writeFileSync(path, 'hello');
existsSync(path);  // true

console.log(globSync('[^a-z]')); // [ '�' ] non-utf8 bytes in the file name end up replaced.

The globSync, et. al APIs likely need an encoding option that instructs it to return the filenames as Buffer objects.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem Einstiegspunkt fs.globSync und reproduziere das Linux-Beispiel mit einem Dateinamen, der das Byte 0xe9 enthält. Verfolge, wie glob-Ergebnisse dekodiert werden, und prüfe die zugehörigen glob-APIs auf konsistentes Verhalten. Als erledigt gilt die Aufgabe, wenn Dateinamen mit Nicht-UTF-8-Kodierung ohne Ersatzzeichen zurückgegeben werden können und die vorgeschlagene Buffer-orientierte Kodierungsoption durch Tests abgedeckt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript
Bereich
operating-systems
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.