Browse Source

Merge branch 'fix-utf8' into 'master'

Change archive bit flags to specify use of UTF-8 filenames

See merge request timvisee/send!21
Tim Visée 3 years ago
parent
commit
4c5d8e3bd3
1 changed files with 2 additions and 2 deletions
  1. 2 2
      app/zip.js

+ 2 - 2
app/zip.js

@@ -29,7 +29,7 @@ class File {
     const v = new DataView(h);
     const v = new DataView(h);
     v.setUint32(0, 0x04034b50, true); // sig
     v.setUint32(0, 0x04034b50, true); // sig
     v.setUint16(4, 20, true); // version
     v.setUint16(4, 20, true); // version
-    v.setUint16(6, 8, true); // bit flags (8 = use data descriptor)
+    v.setUint16(6, 0x808, true); // bit flags (use data descriptor(8) + utf8-encoded(8 << 8))
     v.setUint16(8, 0, true); // compression
     v.setUint16(8, 0, true); // compression
     v.setUint16(10, this.dateTime.time, true); // modified time
     v.setUint16(10, this.dateTime.time, true); // modified time
     v.setUint16(12, this.dateTime.date, true); // modified date
     v.setUint16(12, this.dateTime.date, true); // modified date
@@ -60,7 +60,7 @@ class File {
     v.setUint32(0, 0x02014b50, true); // sig
     v.setUint32(0, 0x02014b50, true); // sig
     v.setUint16(4, 20, true); // version made
     v.setUint16(4, 20, true); // version made
     v.setUint16(6, 20, true); // version required
     v.setUint16(6, 20, true); // version required
-    v.setUint16(8, 8, true); // bit flags (8 = use data descriptor)
+    v.setUint16(8, 0x808, true); // bit flags (use data descriptor(8) + utf8-encoded(8 << 8))
     v.setUint16(10, 0, true); // compression
     v.setUint16(10, 0, true); // compression
     v.setUint16(12, this.dateTime.time, true); // modified time
     v.setUint16(12, this.dateTime.time, true); // modified time
     v.setUint16(14, this.dateTime.date, true); // modified date
     v.setUint16(14, this.dateTime.date, true); // modified date