Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

zip uncompress error pathname is null #13

Open
Klivitam opened this issue Oct 8, 2023 · 7 comments
Open

zip uncompress error pathname is null #13

Klivitam opened this issue Oct 8, 2023 · 7 comments

Comments

@Klivitam
Copy link

Klivitam commented Oct 8, 2023

sample.zip

@I-Want-ToBelieve
Copy link

I-Want-ToBelieve commented Oct 12, 2023

The file name in sample.zip contains non-utf8 encoded symbols

entry_pathname: module.cwrap('archive_entry_pathname_utf8', 'string', ['number'] as const),

@Klivitam
Copy link
Author

what can i do in this

@I-Want-ToBelieve
Copy link

I-Want-ToBelieve commented Oct 13, 2023

这个库将 libarchive 这个 c 库编译为 wasm 并提供 typescript 的接口, 其中关于获取压缩包中的文件的接口只暴露出 archive_entry_pathname_utf8 这个 utf8 编码的接口 , 如果压缩包中的文件的文件名包含非 utf8 编码的符号则会出现无法解析的问题,但实际上 libarchive 这个 c 库是有支持其他编码的 archive_entry_pathname 接口的 https://github.com/search?q=repo%3Alibarchive%2Flibarchive%20archive_entry_pathname&type=code

将这些接口暴露出来重新编译 libarchive 为 wasm 并对 pathname 进行解码尝试,应该可以提供一个更具有兼容性的 typescript 的接口。

@Klivitam
Copy link
Author

但是archive_entry_pathname会乱码

@I-Want-ToBelieve
Copy link

I-Want-ToBelieve commented Oct 16, 2023

但是archive_entry_pathname会乱码

乱码很正常,即使是很成熟的解压缩工具 ark 也有乱码
2023-10-16_23-14

peazip 也有乱码,我觉得这种程度的乱码可以接受
2023-10-16_23-20

@Klivitam
Copy link
Author

但是 gbk编码一定就不行 这种也算预期之内吗 这个很普遍哦

@I-Want-ToBelieve
Copy link

I-Want-ToBelieve commented Oct 18, 2023

gbk 是国内的编码, 国际上一般用万国码, 这个是国际标准, 支持所有国家的文字 。
所以一般只支持 utf8 就可以了, 其他的都算是历史遗留的问题 ,理想情况下大家都统一用 utf8, 编码的问题就算是长久的解决了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants