【发布时间】:2023-03-12 17:30:02
【问题描述】:
我正在尝试将 mp3 文件编码为 base64。我正在使用createInterface 逐行读取文件,然后连接字符串。
然后我使用new Buffer(str).string('base64')对字符串进行base64编码
编码的 base64 不正确,每行读取的 + 符号(假设)
PHP base64 工作正常。
Node生成base64 SUQzAwAAAAZVbFRJVDIAAABOAAAATG92ZSBZb3UgVG9uaWdodCBmdC4gS2FiemEgRGUgU21hbGwsIERKIE1hcGhvcmlzYSAmIFNoYXNoYSB8IHd3dy5iZWF0emphbS5jb21UUEUxAAAAIwAAAFtCZWF0ekphbV1NRlIgU291bHMgfCBiZWF0emphbS5jb21UQUxCAAAAEQAAAHd3dy5iZWF0emphbS5jb21UWUVSAAAABQAAADIwMTlUQ09OAAAADgAAAFBlcmZlY3QgTXVzaWNDT01NAAAAJQAAAGVuZwBEb3dubG9hZGVkIEZyb20gd3d3LmJlYXR6amFtLmNvbUFQSUMAAXTvv70AAABpbWFnZS9qcGVnAABEb3dubG9hZGVkIEZyb20gd3d3LmJlYXR6amFtLmNvbQDvv73vv73vv73vv70AEEpGSUYAAQEAAAEAAQAA77 + 977 + + 9AO P>
PHP base64
SUQzAwAAAAZVbFRJVDIAAABOAAAATG92ZSBZb3UgVG9uaWdodCBmdC4gS2FiemEgRGUgU21hbGwsIERKIE1hcGhvcmlzYSAmIFNoYXNoYSB8IHd3dy5iZWF0emphbS5jb21UUEUxAAAAIwAAAFtCZWF0ekphbV1NRlIgU291bHMgfCBiZWF0emphbS5jb21UQUxCAAAAEQAAAHd3dy5iZWF0emphbS5jb21UWUVSAAAABQAAADIwMTlUQ09OAAAADgAAAFBlcmZlY3QgTXVzaWNDT01NAAAAJQAAAGVuZwBEb3dubG9hZGVkIEZyb20gd3d3LmJlYXR6amFtLmNvbUFQSUMAAXTDAAAAaW1hZ2UvanBlZwAARG93bmxvYWRlZCBGcm9tIHd3dy5iZWF0emphbS5jb20A / 9J / 4AAQSkZJRgABAQAAAQABAAD / 2wCEAAYGBgYHBgcICAcKCwoLCg8ODAwODxYQERAREBYiFRkVFRkVIh4kHhweJB42KiYmKjY + NDI0PkxERExfWl98fKcBBgYGBgcGBwgIBwoLCgsKDw4MDA4PFhAREBEQFiIVGRUVGRUiHiQeHB4kHjYqJiYqNj40MjQ + TERETF9aX3x8p // CABEIBAAEAAMBIgACEQEDEQH / xAAxAAEAAwEBAQAAAAAAAAAAAAAAAQIDBAUGAQEBAQEBAQAAAAAAAAAAAAAAAQIDBAX / 2gAMAwEAAhADEAAAAvZmJ + H6wAoAAKTEgAIFAAEiJCCsWkoAAEAJAUEAEkiQAAAAEkJEJEJEJEAAAhIhIgKAAiRCYAAAUACEiEiAAAABKiRAAgAIARMEgACgApIBYAAASqEgAIACgARIAAACZIkABJCQAACABAUAAACwkQkQABEiEiBQLCRAgAFACgESISITEAAAIlLAAgAIAACgAElBYBIoAAAAAEiLVzbDUASAAACRAgkAAgAmISIkAAAAAESITFAAAoEJgCkSITACgImAAAAFA AAAAgAQEsACAAgKAAJUFiYmgAAQLQAkAJEJEJAAAAEhAEgEgBIAEpCQAAJITAAAiRCRCYAWEiABbCRAAITACgIkQkQkQmAAALQkBQESIEQlLAgAAABMTQWJKCwkQlUJESCJEJQAAAAAJSJAIEgIASgAkgAkiRCVQkQmaqsKpRCYAiElhMAEJEBYSITFAsJEARKoTACgAAQkQkQlUJEJEJECVEogQiYlCAAAqRYSoLElAAAAAAAABISAAoSBIJISCSQkRMohM2VmREpSEzpCZ1ITO1VmpVZVVowqtGLVZi0WRVYtYsKrIqsqqS1WghIqtCwkREqhJYAiRAAAUAAAABEiBCJSwIhMShAEjUJUFiSkmoATAEAAAAACTz + fu4e2envx2xWHQjweyl + 2fTJ5WPJ9fy + k5Pc871bCWUTh0VEps + W + j8b1 + jeZYnm49OfR6UykjyPY8fb0ejz / AENRzdLTxPb4PQIi0R4vf5vrZuqWEeZ18x6KWVfC9zxbfann6Yjg9DiPG9 / m61vFowhhusJZeT2cnXpumOeuXz P>
这是一个示例代码
var interface = readline.createInterface({
input: fs.createReadStream(file)
}),
str = '';
interface.on('line', (line)=>{
str += line;
} )
interface.on('close',()=>{
var base = new Buffer.from(str).toString('base64');
res.send( `<audio autoplay controls><source src="data:audio/mp3;base64,${base}"></source></audio>` )
})
【问题讨论】:
-
感谢您对下面我的回答的反馈。它对你有用吗?如果有任何不清楚的地方,请随时询问。如果它回答了您的问题,请考虑通过单击左侧的复选标记来接受它。
标签: javascript node.js encoding base64