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

BOM头 #15

Closed
unbadfish opened this issue Jun 25, 2020 · 3 comments · Fixed by #16
Closed

BOM头 #15

unbadfish opened this issue Jun 25, 2020 · 3 comments · Fixed by #16

Comments

@unbadfish
Copy link

图片
新买的MP3歌词显示乱码,检查后发现是BOM头的问题
但是看代码好像编码格式是utf-8,似乎没有SIG或者BOM,疑惑…………

能不能顺便写个把某一文件夹下所有.lrc文件都改编码成utf-8的脚本或程序呀,我的MP3在读取文件内容的时候好像只支持utf-8,而我的歌词文件一共有4种还是五种格式:cry:

@unbadfish
Copy link
Author

图片
我又用Notepad++打开了一遍,确实是文件有问题,应该不是软件的问题
这俩软件一起出问题程序员怕不是会认为世界末日到了:joy:

jitwxs added a commit that referenced this issue Jun 25, 2020
@jitwxs jitwxs mentioned this issue Jun 25, 2020
@jitwxs
Copy link
Owner

jitwxs commented Jun 25, 2020

这个 BUG 我先给修复了已经。

关于批量替换,网上有许多用 python 写的批量转换小工具。

@unbadfish
Copy link
Author

又写了一个辅助脚本【打广告:smile:】
地址: http://github.com/unbadfish/change-coding


简介

163MusicLyrics写的又一个辅助脚本

使用方法

  1. 以文本模式打开list_all.py,把for root, dirs, files in os.walk('Z:\\'):中的Z:\\换成你的歌词文件所在的目录(这个脚本是以只读方式打开文件的,应该不会损坏文件)

  2. 运行list_all.py

  3. 找到与其同目录下的list.csv表格文件,看看歌词文件的数目,编码方式是否正常。例如:

    编码方式 提示信息 文件路径
    utf-8 D:\f__k\you\hahaha.lrc
    • 比如说你有4000个歌词文件,只扫描出来100个,那就是有问题。
    • 再比如说你的list.csv文件里提示信息说others(非utf-8,utf-8-bom,GB2312编码)很多,那你就要自己想办法改一下代码了
  4. 以文本模式打开main.py,把for root, dirs, files in os.walk('Z:\\'):中的Z:\\换成你的歌词文件所在的目录

  5. 运行main.py

注意事项

  1. 只写了修改utf-8-bom, GB2312的代码,更多编码方式的敬请自己增加并欢迎pull requset
  2. 关于GB2312:
    • 为什么要用content = f1.read().encode().decode('utf-8')这种方式读取文件?
    • 因为有的时候加上open加上encoding='gb2312'会出问题,。所以就用了这种取巧的办法。
    • 理论上来说这个方案适用于所有的编码方式,会考虑再写一个通用的备用脚本
  3. ==请注意备份自己的数据!!!==我不对这些脚本造成的任何数据损坏负责。
  4. Z:\\改成的目录可以适当地写大一些,因为没有什么软件用.lrc格式储存数据(建议先运行一遍list_all.py,以免发生问题)

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

Successfully merging a pull request may close this issue.

2 participants