Skip to content

Files with ASCII filename and UTF-8 comment lost EFS flag when writing with zipfile #152845

Description

@danny0838

Bug report

Bug description:

According to the spec, the EFS flag enforces the filename and comment of a file entry to be UTF-8.

However, the EFS flag is not set when a file with ASCII filename and UTF-8 comment is written through zipfile. This renders its comment at risk of mis-decoding.

Similarly, a file with ASCII filename and UTF-8 comment lost its EFS flag when the central directory was rewritten in append mode, causing an unexpected metadata change and rendering its comment at risk of mis-decoding. This is a regression of gh-84353/gh-150091, before which the EFS flag was not altered.

Additionally, the metadata_encoding parameter cannot be specified when an archive is opened with 'a' mode, disallowing a proper decoding with a customized codec.

CPython versions tested on:

3.14, 3.16

Operating systems tested on:

No response

Linked PRs

Metadata

Metadata

Labels

stdlibStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or error

Fields

No fields configured for issues without a type.

Projects

Status
No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions