C 将WAV转换为base64

C 将WAV转换为base64,c,python-2.7,audio,wav,C,Python 2.7,Audio,Wav,我有一些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("fil

我有一些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编码示例,请参见


C++ 您可以看到字符串的base64转换。我认为对文件也这样做不会太困难。

@ForceBru的答案

import base64 
enc=base64.b64encode(open("file.wav").read())
有一个问题。我注意到,对于一些我编码的WAV文件,生成的字符串比预期的短

“open()”的Python文档

如果省略模式,则默认为“r”。 默认情况下使用文本模式,该模式可以在写入时将“\n”字符转换为平台特定的表示形式,在读取时再转换回平台特定的表示形式。因此,在打开二进制文件时,应该在mode值后附加“b”,以二进制模式打开文件,这将提高可移植性

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

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