你好呀,
即使我真的尝试过......当谈到Python、Windows、Ansi和字符编码时,我陷入了困境并且有些绝望。我需要帮助,说真的......过去几个小时在网上搜索没有任何帮助,它只会让我发疯。
我是 Python 新手,所以我几乎不知道发生了什么。我即将学习这门语言,所以我的第一个程序几乎完成了,它应该自动从包含 mp3 的给定文件夹生成音乐播放列表。这工作得很好,除了一个问题......
...我无法将元音变音(äöü)写入播放列表文件。
在我找到“错误编码”数据的解决方案后,sys.argv
我能够处理这个问题。从 MP3 中读取元数据时,我使用某种简单的字符替换来摆脱所有那些国际特殊字符,例如法语口音或带有斜线的疯狂斯堪的纳维亚语“o” (我什至不知道如何键入它...)。一切都好。
但我想至少将提到的元音变音写到播放列表文件中,这些字符在德国真的很常见。与元数据不同,我不关心一些丢失的字符或拼写错误的单词,这是相关的 - 因为现在我正在编写文件的路径。
我已经尝试了很多不同的编码和解码方法,我无法在这里全部列出.. 哎呀,我什至无法说出半小时前我尝试了哪些设置。我在网上、这里和其他地方找到了似乎可以用于某些目的的代码。不适合我的。
我认为棘手的部分是:问题似乎是我需要编写的文件的Ansi格式。正确 - 我实际上需要这个 Ansi-stuff。大约两个小时前,我实际上设法将我想要的任何内容写入 UFT-8 文件。像魅力一样工作......直到我意识到我的播放器(Winamp,旧版本)不知何故不适用于那些 UTF-8 播放列表文件。即使它在我的编辑器中看起来正确,它也无法解析路径。
如果我将文件格式更改回 Ansi,则包含特殊字符的路径会损坏。我只是猜测,但如果 Winamp 将此 UTF-8 文件读取为 Ansi,那将导致我现在遇到的问题。
所以...
- 我必须在路径中写 äöü,否则将无法正常工作
- 它必须是 ANSI-“编码”文件,否则将无法工作
line.write(str.decode('utf-8'))
诸如破坏文件功能之类的事情- 脚本开头的神奇注释在
# -*- coding: iso-8859-1 -*-
这里什么都不做(尽管它对提到的元数据和其中允许的字符很有帮助......) - 哦,我正在使用 Python 2.7.3。第三方模块依赖,你知道的...
有没有人可以引导我走出这个编码地狱?欢迎任何帮助。如果我需要 500 行代码用于其他函数或类,我会输入它们。如果有处理这些东西的模块,请告诉我!我会买的!任何有用的东西都会被测试。
感谢您的阅读,感谢您的任何评论,
问候!