taurusxin / ncmdump

转换网易云音乐 ncm 到 mp3 / flac. Convert Netease Cloud Music ncm files to mp3/flac files.
MIT License
1.04k stars 168 forks source link

[Bug] 文件夹或文件名中出现符号、部分日文等,会导致转换失败。 #15

Closed alexblair closed 7 months ago

alexblair commented 7 months ago

Describe the bug 当文件名中包含特殊字符时,会触发转换失败。特殊字符包括 特定得日文、符合、中文等。 具体案例如下:

原始文件名 转换失败,没有产生文件 image

同一个文件 修改文件名后正常 image

文件名 花澤香菜 - もうそう♥えくすぷれす.ncm

taurusxin commented 7 months ago

你好,请尝试一下 https://github.com/taurusxin/ncmdump/actions/runs/8353671554 中的构建文件,如果测试成功,我将其上传至 Release

alexblair commented 7 months ago

image

比较可惜,执行后没有报错信息了,但是转换并没有执行。 我把文件打包到NAS了,您可以下载到本地试试看 (windows) https://alexblair.synology.me:8885/d/s/xjn52L44f60KcT6GtFSslqQER13bWOmR/l4lUSt5KwOe1DFJYrVCan04XsFVZsi-Q-BLNggH8IOQs

readme.md 里 附带我写的一个本地测试脚本,或许能帮助您快速定位问题。

新增一个现象。在特定的路径里,会提示文件无法找到。(实际上有的)可能还是转码的问题。

具体LOG 用UTF-8的格式保存在 文件无法找到的LOG.txt 这个NAS文件里了,可供参考

alexblair commented 7 months ago

看了源码(虽然不太懂C ,我写PHP java的),文件路径的判断实际上调用的是系统函数。 搜索了下 可能是这个原因:(供参考,不一定对) https://blog.csdn.net/gamerzhj/article/details/125692487 如果使用 std::filesystem::u8path 会不会问题得到解决?

taurusxin commented 7 months ago

你好,经测试已经彻底修复了这个问题,用下面的自动构建试一下,没问题就发布 Release。

https://github.com/taurusxin/ncmdump/actions/runs/8385495511

alexblair commented 7 months ago

测试通过! 非常感谢!

测试环境 windows server 2022

taurusxin commented 7 months ago

测试通过!

非常感谢!

测试环境 windows server 2022

感谢反馈,这个问题之前开过好几个issue,都是临时解决,这次应该是彻底修好了,全局使用UTF-8适配了所有操作系统语言和字符集。