将 WAV 转换为 base64

Convert WAV to base64

我有一些 wave 文件 (.wav),我需要将它们转换为 base64 编码的字符串。你能指导我如何在 Python/C/C++ 中做到这一点吗?

Python

最简单的方法

from base64 import b64encode

f=open("file.wav")
enc=b64encode(f.read())
f.close()

现在 enc 包含编码值。

您可以使用稍微简化的版本:

import base64

enc=base64.b64encode(open("file.wav").read())

C

有关文件的 base64 编码示例,请参阅 this file


C++

Here可以看到字符串的base64转换。我认为对文件做同样的事情不会太难。

@ForceBru 的回答

import base64 
enc=base64.b64encode(open("file.wav").read())

有一个问题。我注意到对于一些我编码的 WAV 文件,生成的字符串比预期的要短。

Python "open()" 的文档说

If mode is omitted, it defaults to 'r'. The default is to use text mode, which may convert '\n' characters to a platform-specific representation on writing and back on reading. Thus, when opening a binary file, you should append 'b' to the mode value to open the file in binary mode, which will improve portability.

因此,代码片段不是以二进制形式读取的。因此,应该使用以下代码以获得更好的输出。

import base64
enc = base64.b64encode(open("file.wav", "rb").read())